我有一个简单的应用程序,它是访问特定的NFC标签时注册一个用户的主电子邮件帐户的扩展活动。
不幸的是,由于某种原因,即使我可以看到几个账户置备我的三星设备下面的代码只返回一个,而不是完整的名单上。 它返回一个似乎是三星帐户ID,而不是谷歌ID。
这是用户错误的简单情况还是有一些其他的方式来获得的谷歌ID?
此代码已被更新,以反映正确的功能。 关闭这一个。
代码段是在这里:
public class MainActivity extends Activity {
.
.
.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.message);
final Context context = getApplicationContext();
Thread myThread = new Thread(
new Runnable() {
public void run() {
try {
GoogleAuthUtil.requestGoogleAccountsAccess(context);
} catch (Exception e) {
if (e instanceof UserRecoverableAuthException) {
startActivityForResult(((UserRecoverableAuthException)
e).getIntent(), MY_PERMISSIONS_REQUEST_READ_CONTACTS);
} else {
Log.e("SignIn", "Exception in getting google accounts" + e);
}
}
}
});
myThread.start();
AccountManager accountManager = AccountManager.get(context);
Account[] accounts = accountManager.getAccounts();
ClientRequest request = new ClientRequest (accounts);
handleIntent(getIntent());
}
.
.
.
}
这是我看到它在调试器,其中foo@bar.net是三星ID我的测试设备上的返回:
accounts[0] = {Account@4923} "Account {name=foo@bar.net, type=com.osp.app.signin}"
this = {MainActivity@4856}
savedInstanceState = null
context = {Application@4867}
accountManager = {AccountManager@4903}
accounts = {Account[1]@4913}
0 = {Account@4923} "Account {name=foo@bar.net, type=com.osp.app.signin}"