【问题标题】:How do I exclude devices with no rear facing camera?如何排除没有后置摄像头的设备?
【发布时间】:2013-07-29 10:12:06
【问题描述】:

我有一个准备好运行的应用程序,它需要有一个后置摄像头。显然,它在清单中具有<uses-permission android:name="android.permission.CAMERA" /> 权限,但这并不排除诸如 Nexus 7 平板电脑等只有前置摄像头的设备。

没有经过手动排除设备我该怎么做?

【问题讨论】:

    标签: android eclipse


    【解决方案1】:

    我只知道一个程序化的答案。 正如this question 所示,您可以使用

    PackageManager pm = context.getPackageManager();
    return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
    

    如果设备没有后置摄像头,则返回 false(在 Nexus 7 上为 false)

    国旗

    FEATURE_CAMERA_FRONT
    

    将仍然是正确的。因此,您可以在启动您的第一个 Activity 时使用此测试,并在您的应用说明中添加一个大警告。

    但是,除了手动排除设备之外,我不知道如何使用清单来排除符合此条件的设备。

    编辑:链接为相关的另一个问题指出清单的此使用功能标志:

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

    根据文档:

    应用程序使用设备的摄像头。如果设备支持多个摄像头,则应用程序使用背对屏幕的摄像头。

    所以对于仅面向前端的设备来说有点模棱两可。

    【讨论】:

      【解决方案2】:

      你可以使用在android中给出的uses-feature标签。您必须在清单文件中声明此标签。它会根据给定的条件自动过滤设备。只需像这样在清单中使用这个 uses-feature 标记:

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

      更多详情请点击以下链接:- Android Uses Premission

      【讨论】:

      • 即使您不使用 android:required="true",Google Play 系统也会假定这是必需的属性并在此基础上进行过滤。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      相关资源
      最近更新 更多