我知道如何查找帐户(包括用户的Gmail电子邮件ID)以及如何过滤Gmail帐户。
AccountManager am = AccountManager.get(context);
Account[] accounts = am.getAccounts();
ArrayList<String> googleAccounts = new ArrayList<String>();
for (Account ac : accounts) {
String acname = ac.name;
String actype = ac.type;
//add only google accounts
if(ac.type.equals("com.google")) {
googleAccounts.add(ac.name);
}
Log.d(TAG, "accountInfo: " + acname + ":" + actype);
}
return googleAccounts;
我想知道的是如何找到与Android电子市场相关联的Gmail帐户?如果您尝试从Android手机中删除Gmail帐户,您将收到此消息
但如果您尝试删除与Android电子市场相关联的Gmail帐户,您将收到以下消息(如果您在之前的消息中按删除帐户)。
感谢您的帮助。
答案 0 :(得分:2)
对话框
是由Google帐户身份验证器中AbstractAccountAuthenticator#getAccountRemovalAllowed的实施引起的。
由于系统专用权限AbstractAccountAuthenticator
会阻止直接调用android.permission.ACCOUNT_MANAGER
的实施,因此您很难自行查找。
答案 1 :(得分:2)
根据我的发现,设备中添加的第一个谷歌帐户是与Android市场相关的主要谷歌地址。此外,我们按照设备中添加的顺序获取Google帐户。因此,accounts [0]将是第一个添加的电子邮件ID。
String marketAssociatedEmailId = "";
Account[] accounts = AccountManager.get(context).getAccountsByType("com.google");
if(accounts.length > 0) {
marketAssociatedEmailId = accounts[0].name;
}
同样,我不确定这一点。你必须自己用各种场景进行测试。
答案 2 :(得分:0)
“关联”将由Android电子市场/ Google Play应用程序管理,我认为它没有任何公共API可以告诉您它使用的帐户。此外,在最近的版本中,它可以使用多个帐户,因此,手机上的任何Google帐户都可以与Market / Play商店应用一起使用。
为什么你要这么做?能够“安全”删除帐户吗?用户将收到相应的错误消息,因此他们应该能够决定是否删除该帐户。