Android相机:需要正面或后置摄像头

时间:2012-09-03 15:53:08

标签: android google-play android-camera

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

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

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

要求正面相机,我知道我也可以添加:

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

但我想支持所有拥有EITHER相机的设备。反正有吗?

例如,我想支持只有正面相机的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。不过,我还没有测试过它。

是否有人建议使用前置摄像头,后置摄像头或两者同时支持所有设备,但不支持没有摄像头的设备?

3 个答案:

答案 0 :(得分:2)

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

a)我相信你是对的,目前没有好办法要求任何一个摄像头进入APK。

b)如果需要,可以删除uses-feature并在运行时检查相机。它会让用户体验变得更糟,但它会起作用。

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

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

答案 1 :(得分:2)

This has changed因为它已被回答,您现在可以将uses-feature添加到需要任何相机的清单中:

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

答案 2 :(得分:0)

加上我的2美分讨论:

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

我测试的方式是使用aapt(http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features中的测试说明),并寻找明确或隐含的摄像头要求:

没有<uses-feature>标记,但需要camera权限: enter image description here 观察uses-implied-feature

仅使用<uses-feature android:name="android.hardware.camera.any" android:required="false" />enter image description here 仍然暗示应用程序总是需要相机。

两个<uses-feature android:name="android.hardware.camera.any" android:required="false" /><uses-feature android:name="android.hardware.camera" android:required="false" />定义: enter image description here 没有更多隐含的功能。

希望这有助于有人介绍自己的应用。