为什么我们需要使用<uses-feature>属性?

时间:2019-05-28 13:19:18

标签: android android-camera android-manifest android-camera-intent uses-feature

我知道我的问题超出了这个社区的范围。这里不是问这样一个问题的地方,但是我确实需要这个问题的答案。在互联网上没有正常现象。我认为您将得到谅解,不会对这个问题投反对票。谢谢。

所以我的问题与相机有关。当应用程序需要使用系统摄像机时,我们使用intent操作创建一个ACTION_IMAGE_CAPTURE,并在manifest文件中添加这样的权限。

<uses-permission android:name="android.permission.CAMERA"/>

但是除此之外,还有这样一种 <uses-feature android:name="android.hardware.camera"/>

它是做什么用的?我读到,如果写了这行,那么如果手机没有摄像头,则该应用程序将无法安装。是真的吗除此之外,我们为什么需要这个?

清单文件中的行<uses-feature/>通常负责什么?谢谢。

5 个答案:

答案 0 :(得分:2)

<uses-feature android:name="android.hardware.camera"/>

以上行将用于检查设备是否具有相机硬件。

当您在Play商店上载应用时,他们会根据特定设备的功能来过滤您的应用,

如果有任何设备会在Play商店中搜索您的应用,而该设备没有相机硬件,则将不允许他们在该设备上安装应用。

但是,如果您的要求是在设备没有camara硬件的情况下强制下载该应用程序,则可以使用:  <uses-feature android:name="android.hardware.camera" android:required="false"/> android:required =“ false”将允许您安装

希望您能理解

答案 1 :(得分:2)

<uses-feature>

Google documentation本身明确指出:

  

Google Play使用您的应用中声明的<uses-feature>元素   清单以从不符合其硬件的设备中过滤您的应用   和软件功能要求。

     

通过指定应用程序所需的功能,可以启用   Google Play仅向其设备的用户展示您的应用   满足应用程序的功能要求,而不是展示它   所有用户。

Android中的某些权限已连接至设备的某些硬件/软件功能,例如CAMERA。由于市场上每款Android设备的硬件和软件配置都不同,因此您尝试添加到应用程序中的某些功能可能不支持所有Android设备的可能性更大。如果您尝试在无摄像头的设备中使用摄像头(肤浅的假设),则您的应用将无法正常运行。

简而言之,如果您希望您的应用仅可用于具有该特定功能的设备集,则可以在清单中添加具有所需功能的<uses-feature>标签。 这仅用于根据设备配置和支持过滤Play商店中的应用。 您可以根据需要定义零个或多个<uses-feature>功能。

注意:如果您不希望仅出于不影响应用整体用户体验的功能就将其过滤掉,则可以明智地禁用特定功能功能,如果它在您的应用程序中不可用。

为此,您必须编写

<uses-feature android:name="YOUR_NON_COMPULSORY_FEATURE" android:required="false" />

例如,如果您的应用程序使用CAMERA功能,但您的应用程序不依赖于该功能,则可以仅禁用CAMERA功能以提供非笨拙的用户体验。

答案 2 :(得分:1)

这是非常重要的部分。假设您的应用程序使用特定的硬件,并且对于您的应用程序而言必不可少的是,硬件必须在设备上可用才能使用您的应用程序。如果已定义,则将针对具有特定硬件的那些设备过滤掉您的应用。

注意:在Google Developer网站上已有详细记录

** Google Play使用您的应用清单中声明的​​元素来从不符合其硬件和软件功能要求的设备中过滤您的应用。

通过指定应用程序所需的功能,可以使Google Play仅向其设备满足应用程序功能要求的用户展示应用程序,而不向所有用户展示该应用程序。**

下面是进一步参考指南的链接

Click here

答案 3 :(得分:1)

<uses-feature/>可以指导Google Play商店从不具有相机硬件的设备中过滤出此应用程序。

答案 4 :(得分:1)

作为开发人员-让我们针对您的应用向我们问这个问题。

  

用户如何处理我的手机没有相机的应用程序?

如果上述问题的答案是“不多”-那么,如果用户不能做很多事情,那么允许用户在手机上安装您的应用程序又有什么意义呢?对于用户而言,这是浪费时间和互联网带宽。

如果最终得知该应用程序的使用率不高,使用户感到非常沮丧,那么他们可能会在Play商店中对您的应用程序评级不佳。

因此,这里有<uses-feature/>选项可以保护开发人员和用户免受上述情况的影响。