package com.example2.sync;
import android.accounts.Account;
import android.accounts.AccountAuthenticatorActivity;
import android.accounts.AccountManager;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* <pre>
* 该范例参考了安卓开发者官网的教程编写,创建一个系统账户并启动同步适配器进行数据同步
* 官网教程:
* http://developer.android.com/intl/zh-cn/training/sync-adapters/index.html
* http://developer.android.com/training/sync-adapters/creating-authenticator.html
* http://developer.android.com/training/sync-adapters/creating-stub-provider.html
* http://developer.android.com/training/sync-adapters/creating-sync-adapter.html
* http://developer.android.com/training/sync-adapters/running-sync-adapter.html
*
* 当然还有一个参考数据来源:
* http://yarin.blog.51cto.com/1130898/479032
*
* <pre>
* @author Gin
*
*/
public class MainActivity extends AccountAuthenticatorActivity {
Activity context = this;
EditText username;
EditText server;
EditText password;
Button commit;
private AccountManager accountManager;
String account_type = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
commit = (Button) findViewById(R.id.commit);
username = (EditText) findViewById(R.id.username);
server = (EditText) findViewById(R.id.server);
password = (EditText) findViewById(R.id.password);
accountManager = AccountManager.get(context);
Account[] accounts = accountManager.getAccounts();
for (int i = 0; i < accounts.length; i++) {
System.out.println("账户名称:" + accounts[i].name + " 账户类型: " + accounts[i].type);
}
account_type = getString(R.string.com_ginryan_mycast);
commit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Account account = new Account(username.getText().toString().trim(), account_type);
Bundle userdata = new Bundle();
userdata.putString("server", server.getText().toString().trim());
if (accountManager.addAccountExplicitly(account, password.getText().toString(), userdata)) {
Bundle result = new Bundle();
result.putString(AccountManager.KEY_ACCOUNT_NAME, username.getText().toString().trim());
result.putString(AccountManager.KEY_ACCOUNT_TYPE, account_type);
setAccountAuthenticatorResult(result);
Toast.makeText(context, "Add OK", Toast.LENGTH_SHORT).show();
}
}
});
}
}