2011-10-05 88 views
3

我的應用程序需要同步服務器中的一些數據。我添加了必要的類(類似於SampleSyncAdapter),現在我可以通過「設置/同步和帳戶」添加帳戶。 但是我希望在安裝應用程序後立即添加我的帳戶和工作同步(我不希望用戶在設置中進行任何手動更改)。這個怎麼做?自動添加帳戶

回答

7

有點晚了,但...

Account account = new Account("Title", "com.package.nom"); 
String password = "password"; 
AccountManager accountManager = AccountManager.get(context); 
accountManager.addAccountExplicitly(account, password, null); 
+0

不幸的是,它看起來並不那麼簡單(它會失敗,因爲java.lang.SecurityException:caller uid 10007與認證者的uid不同)...請參閱Udinic的答案爲更完整的答案。 (也許我錯過了什麼,但我真的不明白爲什麼這個答案被接受和upvoted?) – ben75

+0

@ ben75顯然是因爲它在我發佈它的時候工作。 –

+0

如果您按照伊恩的建議,請考慮以下內容:https://stuff.mit.edu/afs/sipb/project/android/docs/training/id-auth/custom_auth.html#Security – Cray

1

你沒有添加到發佈的埃文埃利奧特下面的代碼:

Account account = new Account("Title", "com.package.nom"); 
String password = "password"; 
AccountManager accountManager = AccountManager.get(context); 
accountManager.addAccountExplicitly(account, password, null); 

以下:

authenticator.xml

<?xml version="1.0" encoding="utf-8"?> 

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accountType="@string/account_type" 
    android:icon="@drawable/icon_hdpi" 
    android:smallIcon="@drawable/icon_hdpi" 
    android:label="@string/authenticator_label" 
/> 

和權限?

+0

你的意思是,我們需要添加這段代碼,權限和這個XML文件,然後帳戶將被添加。我正在嘗試添加帳戶,但我收到錯誤消息。我應該在哪裏包含這個XML文件?我需要在代碼中引用這個文件嗎?你能解釋一下嗎? :( – blackfyre

+0

谷歌不會讓你從代碼中添加帳戶,用戶必須自己做,我放棄了試圖使用這些方法並使用現有的方法 – Li3ro

+0

@ Li3ro,你是這麼認爲的?Whatsapp,Facebook, Linkedin等這樣做了嗎?我仍然在尋找答案btw .. :-) – Tom