Adding account through Account manager

前端 未结 1 1549
忘了有多久
忘了有多久 2021-02-06 05:51

I\'m new to android development so sorry if im asking a really obvious question.For my app I want to add a google account automatically using account manager. Do I want to use a

相关标签:
1条回答
  • 2021-02-06 06:37

    try this :

    Permission required :

    <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 讨论(0)
提交回复
热议问题