android:use-feature中的“required”和user-permission中的“requiredFeature”有什么区别?

mia*_*shu 6 permissions android

有使用权限和使用功能,如下所示:

<uses-permission android:name="android.permission.CAMERA" android:requiredFeature="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
Run Code Online (Sandbox Code Playgroud)

我只是不太清楚“android:requiredFeature”属性。和use-feature中的“android:required”效果一样吗?我只是在 android 开发者网站和 google 中找不到 android:requiredFeature 相关信息......

Sam*_*Sam 4

是的,两者或多或少具有相同的效果。android:requiredFeature仅在 API 级别 26 及更高级别中使用,如果您的应用程序的级别minSdkVersion低于 26,则应用程序将忽略该属性。

<uses-permission>通常用于指定用户必须授予应用程序才能正确运行的权限,它不一定用于过滤 Google Play 上的设备的应用程序。如果您希望根据应用程序使用的硬件功能来过滤应用程序的设备,建议的方法是<uses-feature>在清单中定义元素。

正如另一个答案中提到的,基于<uses-permission>Google Play 可以假设您的应用程序需要底层硬件功能,并且它可以根据该功能过滤您的应用程序,但这并不总是正确的,您的应用程序可能在没有该硬件功能的情况下工作,但它更喜欢拥有该功能,因此为了避免基于 的过滤<uses-permission>android:requiredFeature属性用于增强您对过滤的控制。