Tôi đã triển khai trình xác thực tài khoản của mình và dịch vụ và toàn bộ giao dịch và tất cả đều có vẻ hoạt động tốt.Không cho phép nhiều tài khoản trong AccountManager
Tuy nhiên, có một vấn đề nhỏ: Tôi chỉ muốn một tài khoản duy nhất cho ứng dụng của mình tồn tại trong trình quản lý tài khoản, nhưng dường như không thể tìm cách giới hạn điều này.
Giải pháp duy nhất của tôi là thực hiện tìm kiếm và xóa tài khoản hiện tại (theo loại) trước khi thêm tài khoản mới?
mã hiện tại của tôi:
private void removeAccounts()
{
Account [] accounts = mAcctMgr.getAccountsByType (mAccountType);
if (accounts.length == 0) return;
final Handler handler = new Handler();
AccountManagerCallback<Boolean> callback = new AccountManagerCallback<Boolean>()
{
@Override
public void run(AccountManagerFuture<Boolean> arg0)
{
// nada
}
};
for (Account a : accounts) {
mAcctMgr.removeAccount (a, callback, handler);
}
}
tôi không bằng bất kỳ phương tiện gọi đây là một giải pháp tao nhã, nhưng tại thời điểm này có vẻ là điều duy nhất mà hoạt động.
Điều gì nói chống lại việc tìm kiếm tài khoản và xóa hoặc ghi đè nếu đã tồn tại một –
Vì nếu có cách giới hạn tài khoản thành một tài khoản, thì rõ ràng đó là cách * thích hợp để thực hiện. Bạn đã làm điều này chưa? Tôi không thể ghi đè tài khoản, khi bạn tải tài khoản, các trường là cuối cùng. Xóa là không đồng bộ và sử dụng giao diện không phải là tất cả tài liệu. Việc để trống phương thức giao diện dường như hoạt động, nhưng vì những lý do hiển nhiên, tôi không muốn làm điều đó. – copolii
Tôi đã sử dụng AccountManager và tôi không biết cách nào khác để hạn chế tài khoản thành một tài khoản duy nhất. Tôi nghĩ bạn nên nhắc người dùng bằng một hộp thoại nếu anh ta muốn xóa người cũ và sau đó để anh ta tạo một cái mới. Tôi không nghĩ rằng có một cách thanh lịch hơn để làm điều đó. –