我的应用需要相机才能工作。但是,无论是后置摄像头还是前置摄像头都没关系。
现在,我在我的清单中有这个:
<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。不过,我还没有测试过它。
是否有人建议使用前置摄像头,后置摄像头或两者同时支持所有设备,但不支持没有摄像头的设备?
答案 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
权限:
观察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" />
定义:
没有更多隐含的功能。
希望这有助于有人介绍自己的应用。