Android:获取用户ID而不需要吓人(用户)权限?

Android:获取用户ID而不需要吓人(用户)权限?,第1张

概述为了管理用户偏好,目前我正在抓住谷歌的用户名(有效地注册到设备的电子邮件地址),并使用(作为一个哈希)作为“用户ID”来区分不同的用户.一些沿着所描述的内容 here. 这一切都很好,但是有些用户(可以理解的)被任何许可吓倒,似乎给应用程序一些邪恶的力量通过他们的帐户信息或联系人拖网. 编辑:这个问题对于Google现在在Android 6 runtime permission架构中实现Permi 为了管理用户偏好,目前我正在抓住谷歌的用户名(有效地注册到设备的电子邮件地址),并使用(作为一个哈希)作为“用户ID”来区分不同的用户.一些沿着所描述的内容 here.

这一切都很好,但是有些用户(可以理解的)被任何许可吓倒,似乎给应用程序一些邪恶的力量通过他们的帐户信息或联系人拖网.

编辑:这个问题对于Google现在在AndroID 6 runtime permission架构中实现Permission Groups的方式更为尖锐.他们已将GET_ACCOUNTS放入CONTACTS权限组.所以现在,为了生成一个独特的匿名用户ID,用户必须显示一个对话框,说:

Allow this app to access your contacts? | Deny | Allow |

这个误会怎么样?我的应用程序不希望访问联系人,但是要求用户授予该应用访问联系人的权限!是的,有机会向用户解释一个单独的对话框,实际上访问联系人并不是必需的,但是他们仍然获得了库存系统对话框,要求他们授予访问联系人的权限.会想到“如果不需要访问联系人,为什么要被要求授予此权限?” “我真的相信开发人员吗?他们说接触联系不是必需的,但这是真的吗?”…非常混乱和非常糟糕的用户体验IMHO(和others too的意见).

我宁愿避免所有这些麻烦和混乱,并获得唯一的用户ID,而不需要特殊的权限.

SDK中有库存函数还是方法,将返回用户的唯一用户ID,而不需要任何其他权限?如果没有,我很惊讶,因为想要做…似乎有一个常见的事情是拥有管理应用程序用户的用户ID.

两点:

(a)我只需要匿名用户ID …我实际上并不需要用户的电子邮件地址,也不会想要用户的电子邮件地址.所以我不明白为什么谷歌不能提供一个getUserID()方法返回一个唯一的匿名ID,而不必授予应用程序的特殊权限.

(b)它必须是用户ID,而不是设备ID,以便它可以在注册到同一个Google帐户的所有用户的设备上工作.

谢谢.

解决方法 如果您使用Google Play服务,您可以获得帐户类型和帐户名称,而不需要任何额外的权限.

首先,将以下依赖项添加到build.gradle中:

compile 'com.Google.androID.gms:play-services-auth:8.4.0'

接下来,启动帐户选择器意图:

Intent intent = AccountPicker.newChooseAccountIntent(null,null,new String[]{GoogleAuthUtil.Google_ACCOUNT_TYPE},false,null);try {  startActivityForResult(intent,REQUEST_CODE_EMAIL);} catch (ActivityNotFoundException e) {  // This device may not have Google Play Services installed.  // Todo: do something else}

最后,覆盖onActivityResult获取帐户类型和帐户名称:

@OverrIDe protected voID onActivityResult(int requestCode,int resultCode,Intent data) {  if (requestCode == REQUEST_CODE_EMAIL && resultCode == RESulT_OK) {    String accountname = data.getStringExtra(AccountManager.KEY_ACCOUNT_name);    String accountType = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE);    // Todo: do something with the accountname    return;  }  super.onActivityResult(requestCode,resultCode,data);}

来源:https://stackoverflow.com/a/19444640/1048340

总结

以上是内存溢出为你收集整理的Android:获取用户ID而不需要吓人(用户)权限?全部内容,希望文章能够帮你解决Android:获取用户ID而不需要吓人(用户)权限?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1133823.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存