私は1つのアプリを持っており、私のAccountManagerファイルは1つの中央アプリにあります。そのセントラルアプリでAccountManager.AddAccount()を使用できますが、他のアプリからそのメソッドを使用しようとすると、AuthenticatorActivityは開始されません。デバッグして、AddAccountのコードがすべて実行されていることを確認できますが、アクティビティは起動されません。私はのaddAccountが同じである呼び出すコードので、私のアプリケーションのすべてに同じスプラッシュ画面を使用し別のアプリで起動したときにAccountAuthenticatorActivityが起動しないのはなぜですか?
:
は、ここに私のaddAccount方法です。
_accountManager = AccountManager.Get(this);
var accounts = _accountManager.GetAccountsByType(AccountKeys.ACCOUNT_TYPE);
//automatically add new account if no users on device yet
if (accounts.Length == 0)
{
_accountManager.AddAccount(AccountKeys.ACCOUNT_TYPE, AccountKeys.AUTH_TYPE, null, null, this, null, null);
CheckIfFirstRun();
Finish();
}
MyAccountAuthenticatorActivityは1つのアプリにあります。ご覧のとおり、私は正しいアクティビティコンテキストをAddAccountに送信していますが、StartActivity()は認証コードを所有するアプリケーションでコードが実行されたときにのみ呼び出されます。
私の他のアプリがMyAccountAuthenticatorActivityを開くために他に何が欠けていますか? AddAccountを呼び出すと、コールバックをnullに設定する必要がありますか?コールバックの使い方を完全には理解していないので、これを行う方法を理解できません。javaの例のどれもがこれを持っていないからです。
また、私はそうのような私の他のアプリのマニフェストにMyAccountAuthenticatorActivityを追加しようとしている:
<activity android:name="com.redacted.authenticator.MyAccountAuthenticatorActivity" />
しかし、これは何も変わりません。私は他のアプリがAuthenticatorServiceを見ていることを知っています、彼らは単にアクティビティを起動しません。