Я использую учетную запись менеджера аккаунта в службе (которая расширяет FirebaseInstanceIdService). Если у вас нет действительной учетной записи, я добавляю учетную запись с помощью accountManager.addAccount.Android AccountManager addAccount из службы
Это принимает за активность параметра (который используется для запуска активности входа в учетную запись). Однако, поскольку я вызываю addAccount из службы, у меня нет текущей активности для ее размещения. Как я могу вызвать addAccount из службы и заставить его отображать учетную запись в случае необходимости?
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
@Override
public void onTokenRefresh() {
AccountManager accountManager = (AccountManager) getApplicationContext().getSystemService(ACCOUNT_SERVICE);
Account account[] = accountManager.getAccountsByType(ACCOUNT_TYPE);
if(account.length==0) {
Activity activity=???????//What can I set here
accountManager.addAccount(ACCOUNT_TYPE, AccountGeneral.AUTHTOKEN_TYPE_FULL_ACCESS, null,
null, activity, new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> arg0) {
}
}, null);
return null;
}
//do stuff with ContentResolver using account
}
}
отредактирован, чтобы показать код, чтобы проиллюстрировать проблему – Nathan