2017-01-02 5 views
0

私のアプリが起動すると、Accountを作成するか、既存のものを選択するかをユーザに尋ねます。 AuthenticatorAccountAuthenticatorActivityAbstractAccountAuthenticatorService)を実装しました。動作しているようですが、設定/アカウントから新しいアカウントを作成できます。Android AccountPicker 'アカウントを追加する'はオプションを更新しません

AccountPickerを起動すると、すでに作成されているアカウントのリストが表示されます。 Add acccountをクリックすると、Account作成Activityが表示されます。しかし、アカウントの作成、アクティビティの終了、そしてAccountPickerに戻ると、新しく作成されたAccountの新しいオプションは表示されません。アプリを再起動すると、最近作成されたAccountがリストに含まれます。

Intent intent = accountManager.newChooseAccountIntent(null, null, new String[]{"test_namespace"}, null, null, null, null); 
startActivityForResult(intent, TEST_CODE); 

私の質問:私はAccountPickerを開始する方法

  • は、それは次のように動作するようになっていますか?
  • 新しい Accountを作成した後にAccountPickerのコンテンツをリロードすることはできますか?
  • 私は、がAccount作成Activityから返されたときに、新しく作成されたAccountIntentを返すことができますか?私のオーセンティケータアクティビティで

答えて

0

、ユーザが、私は、既存のアカウントをチェックして、明示的にそれはそこにはない場合、アカウントを追加し、サーバー上で認証した後:

boolean accountRegistered = false; 
    Account account = new Account(username, AccountAuthenticator.ACCOUNT_TYPE_MYAPP); 
    AccountManager acctMgr = AccountManager.get(this); 
    Account[] accounts = acctMgr.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE_MYAPP); 
    for (Account acct : accounts) { 
     if (acct.equals(account)) { 
      accountRegistered = true; 
      break; 
     } 
    } 

    if (accountRegistered) { 
     acctMgr.setPassword(account, password); 
    } else { 
     acctMgr.addAccountExplicitly(account, password, null); 
    } 

私はこれを実行した後、私はアカウントを参照してくださいアカウントピッカー

これは100%正しいとは限りません。文書化されていない認証クラスでは、私たちはすべて目が見えません。

関連する問題