【问题标题】:What does android:required="false" mean WRT to uses-permission?android:required="false" 是什么意思 WRT 使用权限?
【发布时间】:2013-10-10 14:37:43
【问题描述】:

我正在集成一个 SDK,它需要我输入这个:

<uses-permission
    android:name="android.permission.ACCESS_FINE_LOCATION"
    android:required="false" />

我理解android:required="false" 上的uses-feature,但我无法理解权限上的含义。它没有作为属性列在docs 中。

它是否类似于uses-feature 上的requires?如果权限暗示了here 列出的功能,那么这些功能不是必需的吗?

【问题讨论】:

    标签: android android-manifest


    【解决方案1】:

    uses-permission 不使用属性 android:required,但 uses-feature 使用。想法相似,但不完全相同,这就是为什么很容易混淆它们的属性要求。

    【讨论】:

      【解决方案2】:

      uses-permission 只是告诉用户应用程序将使用某些功能,但设备不强制包含它才能正常工作。

      android-required 表示该功能是强制性的,未实现该功能的设备将无法看到该应用。

      例如。-

      暗示应用程序使用相机功能。如果摄像头是您应用的必备功能,设置android:required="true" 将阻止它被下载到没有摄像头的设备上。

      编辑

      其实我在想uses-feature标签。 uses-permission 没有 required 属性。

      【讨论】:

      • “表示该功能是强制性的”这是一个权限而不是一个功能,那么它是否指的是隐含的功能?
      • 你是说默认情况下权限不是强制性的。然后我想知道为什么他们告诉要在某些权限中添加android:required="false"
      • 嗯,你是对的,我完全将权限与功能混为一谈。实际上,我猜权限没有属性 android:required 属性。
      【解决方案3】:

      正如您所说,根据the documentation,它不是&lt;uses-permission&gt; 标记中的有效属性。它接着说(强调我的):

      为了控制过滤,始终在元素中明确声明硬件功能,而不是依靠 Google Play 来“发现”元素中的要求。然后,如果您想禁用对特定功能的过滤,可以在声明中添加android:required="false" 属性。

      我建议您的 SDK 文档可能有误,您应该为任何隐含的功能添加一个 &lt;uses-feature&gt; 标记。

      【讨论】:

      • 是的,我也觉得不对,我会告诉他们,看看他们怎么说
      猜你喜欢
      • 2019-01-12
      • 2014-11-05
      • 2018-03-03
      • 2021-12-10
      • 1970-01-01
      • 2015-09-07
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多