其他分享
首页 > 其他分享> > android-棉花糖权限模型在Airbnb中的AccountManager getAccounts()异常,该怎么做?

android-棉花糖权限模型在Airbnb中的AccountManager getAccounts()异常,该怎么做?

作者:互联网

我在运行棉花糖预览3的Nexus 5设备上安装了Airbnb,并且正在使用权限模型.我在使用他们的应用程序时发现了一个很大的奇怪之处.

通常,如果使用AccountManager getAccounts()方法获取在设备上注册的电子邮件帐户,则需要启用GET_ACCOUNTS权限才能使其正常工作.

但是,即使在我的应用程序中,即使我取消了GET_ACCOUNTS权限,他们仍然可以访问已注册的电子邮件帐户,实际上,这确实很奇怪(他们在电子邮件登录中具有自动完成功能).

这是否违反了具有运行时权限模型的目的?

解决方法:

Airbnb并非针对API 23,因此它们不使用运行时权限(当出现权限列表时,您可以在安装时看到此信息).相反,他们遵循compatibility model,在该位置用户仍可以以不会崩溃的方式禁用对应用程序的权限.

但是,兼容性模式(从Developer Preview 3开始)不允许用户禁用GET_ACCOUNTS的使用.实际上,如果未定位到API 23的开发人员未在CONTACTS组中使用任何其他运行时权限,则Contacts组甚至不会被禁用(即使从技术上讲它将包括GET_ACCOUNTS).

当然,一旦Airbnb移至目标API 23并使用运行时权限,那么如果他们想要检索除自己帐户以外的任何帐户,则他们需要请求联系人权限组使用GET_ACCOUNTS.

标签:android-appwidget,android-permissions,android
来源: https://codeday.me/bug/20191027/1947723.html