2012-03-19 41 views
8

Tôi mới phát triển Android nên xin lỗi nếu tôi hỏi một câu hỏi thực sự rõ ràng.Đối với ứng dụng của tôi, tôi muốn thêm tài khoản Google tự động bằng trình quản lý tài khoản. Tôi có muốn sử dụng addAccount hoặc addAccountExplicitly và làm thế nào để tôi đi về điều này giả sử tên tài khoản là "bạch kim" và mật khẩu là "phần mềm".Thêm tài khoản thông qua Trình quản lý tài khoản

Trả lời

12

thử điều này:

Yêu cầu cấp phép:

<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 Bạn có thể vui lòng đăng mã nguồn đầy đủ của mình không? Điều này cũng sẽ giúp tôi. –

+1

setAccountAuthenticatorResult là phương thức được xác định trong lớp AccountAuthenticatorActivity xem tại đây http://developer.android.com/reference/android/accounts/AccountAuthenticatorActivity.html –

+0

Và mã bố trí ở đâu? –

Các vấn đề liên quan