2012-03-19 27 views
8

Sono nuovo nello sviluppo di Android, quindi mi dispiace se sto facendo una domanda davvero ovvia. Per la mia app voglio aggiungere automaticamente un account google utilizzando il gestore account. Voglio usare addAccount o addAccountExclicitly e come faccio a fare questo assumendo che il nome dell'account fosse "platinum" e la password fosse "software".Aggiunta di account tramite Account manager

risposta

12

provare questo:

autorizzato:

<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/></uses-permission> 
<uses-permission android:name="android.permission.ACCOUNT_MANAGER"></uses-permission> 
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission> 
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"></uses-permission> 

AuthenticatorActivity.java

public class SleepyAccountAuthenticatorActivity extends AccountAuthenticatorActivity 
{ 
protected void onCreate(Bundle icicle) 
{ 
    super.onCreate(icicle); 
    setContentView(R.layout.new_account); 
    final Button done = (Button) findViewById(R.id.new_account_done); 
    final EditText server = (EditText) findViewById(R.id.new_account_server); 
    final EditText username = (EditText) findViewById(R.id.new_account_username); 
    final EditText password = (EditText) findViewById(R.id.new_account_password); 
    final Activity self = this; 
    done.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) 
     { 
      //Account 
      Account account=new Account(username.getText(). 
      toString(), getString(R.string.ACCOUNT_TYPE)); 

      Bundle userdata = new Bundle(); 
      userdata.putString("SERVER", server.getText().toString()); 
      //AccountManager 
      AccountManager am = AccountManager.get(self); 

      if (am.addAccountExplicitly(account, password. 
      getText().toString(), userdata)) 
      { 
       Bundle result = new Bundle(); 
       result.putString(AccountManager.KEY_ACCOUNT_NAME, username.getText().toString()); 
       result.putString(AccountManager.KEY_ACCOUNT_TYPE,getString(R.string.ACCOUNT_TYPE)); 
       setAccountAuthenticatorResult(result); 
      } 
      finish(); 
     } 
    }); 
} 
} 

\ res \ xml \ authenticator.xml

<?xml version="1.0" encoding="utf-8"?> 
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
android:accountType="com.yarin.AccountType" 
android:icon="@drawable/icon" 
android:smallIcon="@drawable/icon" 
android:label="@string/ACCOUNT_LABEL" 
android:accountPreferences="@xml/account_preferences" 
/> 
+0

@ imran Si prega di inserire il vostro codice sorgente completo? Questo aiuterà anche me. –

+1

setAccountAuthenticatorResult è il metodo definito nella classe AccountAuthenticatorActivity Vedi qui http://developer.android.com/reference/android/accounts/AccountAuthenticatorActivity.html –

+0

E dove è il codice layout? –

Problemi correlati