7

我的应用需要一个相机才能工作。但是,它是后置摄像头还是前置摄像头都没有关系。

现在,我的清单中有这个:

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

要需要前置摄像头,我知道我还可以添加以下内容:

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

但我想支持所有具有任一摄像头的设备。有没有办法做到这一点?

例如,我想支持只有前置摄像头的 Nexus 7。但我也想只支持后置摄像头的设备。

根据我所做的一些研究,例如:

http://code.google.com/p/android/issues/detail?id=35166

看来这是不可能的。

我认为解决此问题的一种方法是制作 2 个单独的 APK,一个带有 android.hardware.camera,一个带有 android.hardware.camera.front,并使用其Multiple APK Support将两者上传到 Google Play 。不过,我还没有测试过。

有没有人找到推荐的方法来支持所有带有前置摄像头、后置摄像头或两者的设备,但不支持没有任何摄像头的设备?

4

3 回答 3

2

几个想法(没有明确的答案):

a)我相信你是对的,目前没有很好的方法在 APK 上要求任何一个摄像头。

b)如果需要,您可以删除使用功能并在运行时检查相机。它会使用户体验更差,但它会起作用。

c) 您可以使用 use required="false" (http://developer.android.com/guide/topics/manifest/uses-feature-element.html)。希望 Google Market 优先使用此标志的应用程序。

c) 旁注。据我所知,大多数 Android 设备都有摄像头。因此,如果您使用解决方案 b) 或 c),只有非常小的用户群会注意到差异

于 2012-09-03T16:41:18.753 回答
2

自从它被回答以来,这已经改变了,您现在可以将它添加uses-feature到需要任何摄像头的清单中,如下所示:

<uses-feature android:name="android.hardware.camera.any" android:required="true" />
于 2014-11-05T14:00:35.740 回答
1

只是为了在这个讨论中添加我的 2 美分:

我取得了与在对 Juan Cortes 的评论中描述的 @Cat 相同的结果。

我测试这个的方法是使用 aapt(在http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features中找到的测试说明),并寻找显式或隐式相机要求:

没有<uses-feature>标志,但需要camera许可: 在此处输入图像描述 观察uses-implied-feature

仅使用<uses-feature android:name="android.hardware.camera.any" android:required="false" />在此处输入图像描述 仍然暗示该应用程序始终需要相机。

两者都<uses-feature android:name="android.hardware.camera.any" android:required="false" /><uses-feature android:name="android.hardware.camera" android:required="false" />定义: 在此处输入图像描述 没有更多的隐含特征。

希望这有助于有人描述他们自己的应用程序。

于 2016-05-11T10:07:08.963 回答