如何查找与Android Market关联的Gmail帐户?
我知道如何查找帐户(其中将包括用户的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 Market关联的Gmail帐户? 如果您尝试从Android手机中删除Gmail帐户,您将收到此消息
但如果您尝试删除与Android电子市场相关联的Gmail帐户,则会收到以下消息(如果您在先前的消息中按删除帐户 )。
谢谢您的帮助。
对话框
是由Google帐户身份验证程序中的AbstractAccountAuthenticator#getAccountRemovalAllowed实现引起的。
由于仅通过系统权限android.permission.ACCOUNT_MANAGER
阻止直接调用AbstractAccountAuthenticator
实现,所以您将很难自行找到它。
根据我的发现,设备中添加的第一个Google帐户是与Android市场关联的主要谷歌地址。 此外,我们按照设备中添加的顺序获取Google帐户。 因此,帐户[0]将成为第一个添加的电子邮件ID。
String marketAssociatedEmailId = "";
Account[] accounts = AccountManager.get(context).getAccountsByType("com.google");
if(accounts.length > 0) {
marketAssociatedEmailId = accounts[0].name;
}
再次,我不确定这一点。 你必须用各种方案自己测试它。
“关联”将由Android Market / Google Play应用管理,我不认为它有任何公开API告诉你它使用哪个帐户。 此外,在最近的版本中,它可以使用多个帐户,因此电话上的任何Google帐户都可以与Market / Play商店应用一起使用。
你为什么要尝试这样做? 为了能够安全地删除帐户? 用户将得到一个适当的错误信息,所以他们应该能够决定是否删除该帐户。
链接地址: http://www.djcxy.com/p/24597.html上一篇: How to find Gmail account associated with Android Market?