【发布时间】:2019-10-02 10:02:59
【问题描述】:
我有一个 android 应用程序,它在 build.gradle 文件中将 minSdkVersion 列为 23(应该与 Android 6.0 匹配)和 targetSdkVersion 为 26,以及 compile 为 26。
我的设备是 Zebra TC20,Android 版本为 7.1。
我认为问题在于我的应用程序允许用户访问相机以获得特定(可选)功能 - TC20 没有相机。我尝试在 TC20 上使用该功能,但它崩溃了。
当然,像任何开发人员一样,我在 Google 上四处搜索以了解发生了什么,发现 this answer 建议您在启动之前检查功能是否可用,我发现 this answer 描述了如何检查用于相机。
现在,我的主要活动根本没有使用相机,但我的主要活动是通过startActivityForResult 启动另一个活动,而该活动使用了相机。所以我在我的代码中所做的是在主要活动中,在启动使用相机的活动之前,我首先检查相机if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)),并且只有在它存在时才启动,否则会显示相机不是' t 可用。
我自己安装了 APK 并检查了它是否可以在 TC20 设备上运行,并且确实可以运行。那么我的问题是,这是否足以让 TC20 在 Playstore 上下载我的应用程序?我是否还需要在其他活动的内部进行功能请求?为 Playstore 进行此类检查的准则是什么?
【问题讨论】:
-
@IntelliJAmiya 所以这是一个很好的领导!那么我的问题是:目前,我的 Manifest 显示
uses-permission ... CAMERA- 基于该答案,看来我只需添加<uses-feature android:name="android.hardware.camera" android:required="false" />就可以了? -
我把
uses-feature放在uses-permission之前还是之后有关系吗?我是否也必须将required属性放在权限上? -
@IntelliJAmiya 考虑到我也在使用自动对焦,我应该包括
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />吗? -
你可以这样做。
标签: android android-camera android-permissions