在 Play 商店中,“您的设备与此版本不兼容” - 可能是由于相机

Posted

技术标签:

【中文标题】在 Play 商店中,“您的设备与此版本不兼容” - 可能是由于相机【英文标题】:On play store, "Your device isn't compatible with this version" - probably due to camera 【发布时间】: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 进行此类检查的准则是什么?

【问题讨论】:

***.com/questions/30542162/… @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" /> 吗? 你可以这样做。 【参考方案1】:

将这些添加到可能的应用清单中:

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

每位用户 IntelliJAmiya 和 this answer here

【讨论】:

以上是关于在 Play 商店中,“您的设备与此版本不兼容” - 可能是由于相机的主要内容,如果未能解决你的问题,请参考以下文章

“您的设备与此版本不兼容”

“您的设备与此版本不兼容”

Play 商店中的设备兼容性问题

Android 应用程序与 Play 商店中的新设备不兼容

注意9由于兼容性问题,用户无法下载我们的应用

语言更改在上传到 Google Play 商店之前有效,但在上传到 Play 商店后无效。为啥?