我是 android.accounts api 的新手,现在我正在尝试对它们做一些事情,但出现了一个看似虚拟的问题......
我为我的应用程序创建了一个 Authenticator,但尚未实现抽象方法。它的图标成功出现在系统的Add a Account窗口中,我知道当我点击它时,会调用Authenticator中的addAccount方法。
现在我希望在这个方法中做一些简单的事情,并在下面编写代码:
@Override
public Bundle addAccount(AccountAuthenticatorResponse response,
String accountType, String authTokenType, String[] requiredFeatures,
Bundle options) {
Log.d(LOG_TAG, "RRAuthenticator add account... ");
String accountName = "example@example.com";
Account account = new Account(accountName, accountType);
String password = "example_password";
AccountManager manager = AccountManager.get(context);
manager.addAccountExplicitly(account, password, null);
Bundle bundle = new Bundle();
bundle.putString(AccountManager.KEY_ACCOUNT_NAME, accountName);
bundle.putString(AccountManager.KEY_ACCOUNT_TYPE, accountType);
bundle.putString(AccountManager.KEY_AUTHTOKEN, "example_authtoken");
return bundle;
}
我看过 SampleSyncAdapter 的演示,并做出类似的动作。但我通过直接添加帐户来练习使用这些 API。但是系统被线路崩溃了是manager.addAccountExplicitly(account, password, null);
怎么回事呢?
稍后添加:系统进程中的异常。系统会崩溃。AccountManager 抛出 NullPointerException。似乎 addAccountExplicitly 方法的问题,当我评论此语句时,不会发生崩溃。