代码之家  ›  专栏  ›  技术社区  ›  mianlaoshu

android:使用中的“必需”功能和用户权限中的“必需”功能有什么区别?

  •  5
  • mianlaoshu  · 技术社区  · 7 年前

    有如下使用权限和使用功能:

    <uses-permission android:name="android.permission.CAMERA" android:requiredFeature="false"/>
    <uses-feature android:name="android.hardware.camera" android:required="false"/>
    

    我只是不太清楚“android:requiredFeature”属性。它是否与使用中的“android:required”功能具有相同的效果? 我只是在android开发者网站和谷歌上找不到android:requiredFeature相关信息。。。。

    2 回复  |  直到 7 年前
        1
  •  4
  •   Sam    7 年前

    是的,两者或多或少都有相同的效果。 android:requiredFeature 仅当您的应用程序 minSdkVersion 小于26时,应用程序将忽略该属性。

    <uses-permission> 通常用于指定 准许 用户必须授权才能正确运行应用程序,但 必要地 用于在应用程序中筛选Google Play上的设备。如果希望根据应用程序使用的硬件功能筛选应用程序中的设备,建议使用以下方法 <uses-feature> 元素。

    如其他答案所述,基于 <使用权限(>); Google play可以假设你的应用程序需要底层硬件功能,它可以基于此过滤你的应用程序,但这并不总是正确的,你的应用程序可能在没有该硬件功能的情况下工作,但它更喜欢有该功能,因此要避免基于 <使用权限(>); ,则, android:requiredFeature 属性用于增强对过滤的控制。

        2
  •  0
  •   Ivan    7 年前

    我认为这是造成差异的主要原因,这并不是真正的差异,而是一个更有效的案例,可以管理你希望应用商店对你的应用做什么。

    在某些情况下,您通过 会影响应用程序的筛选方式 Google Play。

    例如,如果您请求与硬件相关的许可摄像头 Google Play假设您的应用程序需要 硬件功能,并从没有 提供它。

    要控制筛选,请始终在中显式声明硬件功能 元素,而不是依赖Google Play “发现”元素中的需求。那么,如果 如果要禁用特定功能的过滤,可以添加 声明的android:required=“false”属性。

    有关暗示硬件功能的权限列表,请参阅 元素的文档。

    发件人: Android developers