【问题标题】:Android Optional GPS PermissionsAndroid 可选 GPS 权限
【发布时间】:2015-07-10 21:10:31
【问题描述】:

我使位置权限成为可选的:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-feature android:name="android.hardware.location" android:required="false" />
    <uses-feature android:name="android.hardware.location.network" android:required="false" />
    <uses-feature android:name="android.hardware.location.gps" android:required="false" />

但是当我从 Google Play 商店下载应用程序时,它仍然在对话框中显示位置权限:

我缺少什么使权限成为可选?

谢谢!

【问题讨论】:

    标签: android permissions gps location


    【解决方案1】:

    您将权限与设备功能混为一谈。设备功能标签告诉商店哪些设备可以下载某个应用程序,因为它们具有正确的硬件。想象一下,您的应用在没有 GPS 的设备中毫无意义,他们不应该下载它。这就是设备上可选功能的含义。

    在 Android 中,您在清单中声明的​​所有权限都将显示在 Play 商店中。这是因为 Optional 这个词对于 android 权限完全没有意义,至少在 Android M 之前是这样。

    当您为您的应用声明权限时,您只是说您的应用可以访问资源。不管你是这样做还是用户会使用它都没有关系,但是在你声明了权限的那一刻,它就会呈现给用户。

    在 Android M(下一个主要版本)中,用户可以撤销某些权限,因此应用必须检查它们是否有足够的权限来执行某些操作,但它们仍然会显示在这个 Play 商店对话框中。

    【讨论】:

    • 好的,我知道该信息,但您解释它的方式是有道理的。问题是,我是否要删除权限声明并保留功能?
    • 取决于您在应用中执行的操作。如果您的应用程序访问 GPS,则无法删除该权限,因为它不允许您请求更新(我的意思是位置更新)。当然,如果您删除权限,则不再需要该功能,您就不会使用它。你了解它的工作原理吗?
    • 澄清一下,我不希望应用被 Play 商店过滤,并且不显示在没有 GPS 的设备上。位置权限对应用来说并不重要,大部分应用仍可按预期工作。
    • 这种情况下,你的配置没问题。功能标签不是必需的,但是将它们与 required:false 放在一起不会伤害您;)
    • 我不确定这是否正确,因为添加/删除功能标签会影响过滤设备的数量。
    猜你喜欢
    • 2016-10-17
    • 1970-01-01
    • 2013-03-04
    • 2011-08-08
    • 2018-08-14
    • 1970-01-01
    • 2012-07-12
    • 2016-12-16
    • 2016-10-07
    相关资源
    最近更新 更多