【发布时间】:2016-04-20 16:55:58
【问题描述】:
使用以下代码检索用户的 Google 帐户 gmail,我想知道为什么我从像我这样的设备(当然在我的 gmail 上运行)得到 null,而它在我妈妈的设备上工作:
public class MainActivity extends AppCompatActivity {
final String TAG = "Sample2";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String test = getEmail(getApplicationContext());
Log.d(TAG, "Email is: " + test);
TextView emailTxt = (TextView)findViewById(R.id.emailTxt);
emailTxt.setText(test);
}
private String getEmail(Context context) {
AccountManager accountManager = AccountManager.get(context);
Account account = getAccount(accountManager);
if (account == null) {
return null;
} else {
return account.name;
}
}
private static Account getAccount(AccountManager accountManager) {
Account[] accounts = accountManager.getAccountsByType("com.google");
Account account;
if (accounts.length > 0) {
account = accounts[0];
} else {
account = null;
}
return account;
}
}
我还在我的清单文件中包含以下权限:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
显然,这是因为我的设备...但它不能是唯一返回 null 的设备,所以我不知道这是否是使用应用内验证有效负载时唯一字符串令牌的好方法计费。
哦,这是我在帐户与同步设置中看到的屏幕截图:
...这里有什么我遗漏的吗?
【问题讨论】:
标签: android email in-app-billing accountmanager