2012-03-19 18 views
8

Soy nuevo en el desarrollo de Android. Lo siento mucho si estoy haciendo una pregunta realmente obvia. Para mi aplicación, quiero agregar una cuenta de Google automáticamente usando el administrador de cuenta. ¿Quiero utilizar addAccount o addAccountExplicitly y cómo hago esto suponiendo que el nombre de la cuenta era "platino" y la contraseña es "software".Agregar cuenta a través del administrador de cuentas

Respuesta

12

probar esto:

permiso requerido:

<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 ¿Puedes publicar el código fuente completo? Esto me ayudará también. –

+1

setAccountAuthenticatorResult es el método definido en la clase AccountAuthenticatorActivity, consulte aquí http://developer.android.com/reference/android/accounts/AccountAuthenticatorActivity.html –

+0

¿Y dónde está el código de disposición? –

Cuestiones relacionadas