2011-04-27 57 views
1

有人可以幫助我一步一步的方法來使用Android中的AccountManager以及一個簡約的例子,以更好地理解?Android AccountManager

+0

你究竟想做什麼? – Michael 2011-04-27 06:53:38

+0

您是否檢查過Android SDK中的示例? – rajath 2011-04-27 07:22:29

回答

6

實際上,我在回答這個,所以我可以得到一個清晰的認識自己,所以這裏去(我決不是精通與Android還):

應用程序通常要檢查是否存在賬戶首先,你可以使用:

AccountManager mgr = AccountManager.get(getApplicationContext()); 
Account[] accounts = mgr.getAccountsByType("com.mydomain"); 
// assert that accounts is not empty 

你要使用AccountManagerFuture<Bundle>持有認證令牌的結果。這必須是異步,因爲Android的設備可能會要求用戶在此期間登錄:

private AccountManagerFuture<Bundle> myFuture = null; 
private AccountManagerCallback<Bundle> myCallback = new AccountManagerCallback<Bundle>() { 
    @Override public void run(final AccountManagerFuture<Bundle> arg0) { 
     try { 
      myFuture.getResult().get(AccountManager.KEY_AUTHTOKEN); // this is your auth token 
     } catch (Exception e) { 
      // handle error 
     } 
    } 

}

現在,您可以要求身份驗證令牌異步:

myFuture = mgr.getAuthToken(accounts[0], AUTH_TOKEN_TYPE, true, myCallback, null); 

AUTH_TOKEN_TYPE是取決於你的認證機制。對於谷歌賬戶,它只是'啊'。

現在無論何時只要通過令牌(在頭文件中,作爲參數等)執行認證請求,服務器端就會知道您是誰。

+1

以下是更全面的指導: http://udinic.wordpress.com/2013/04/24/write-your-own-android-authenticator – Udinic 2013-04-25 15:41:05

相關問題