我在Play商店有我的应用程序的alpha原型。出于某种原因,使用平板电脑的用户无法下载应用程序 - 他们会收到消息“您的设备与此版本不兼容”。我没有机会测试多个平板电脑,但我知道这对Nexus 7来说肯定是一个问题。
如果我通过开发人员的控制台查看设备兼容,我发现Nexus 7等平板电脑被列为兼容(并且没有列出任何设备)。
我还确保无法下载应用程序的平板电脑具有最新的操作系统,因此不会因操作系统不兼容而不兼容。
是否有人知道阻止平板电脑下载我的应用可能会出现什么问题?
我已将我的清单包括在内,以备有用。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.activities"
android:installLocation="auto"
android:versionCode="1"
android:versionName="1.0"
android:windowSoftInputMode="adjustPan" >
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CACHE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@drawable/test_logo"
android:label="@string/app_name"
android:theme="@style/SampleTheme.Light" >
<activity
android:name="com.test.activities.LoginActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
...
</application>
</manifest>
作为一个附带问题,我有兴趣了解如何在您将新APK上传到Play商店之前查看设备是否与您的应用兼容。我从未在设备上直接测试应用程序,所以我很惊讶地发现它在Play商店中被列为不兼容。
答案 0 :(得分:2)
我认为这是因为<uses-feature android:name="android.hardware.camera.autofocus" />
(假设Nexus 7没有自动对焦功能)。您可以添加android:required="false"
,以便该应用可供不具备自动对焦功能的设备使用。
答案 1 :(得分:1)
有谁知道阻止平板电脑下载我的应用可能会出现什么问题?
RECORD_AUDIO
requires that the device have a microphone,并非所有平板电脑都配有麦克风。
此外,请删除<uses-permission android:name="android.permission.CACHE" />
,因为Android中没有此类权限。
答案 2 :(得分:1)
如官方Tablet App Quality guide所述:
在您的应用清单中,找到所有
<uses-feature>
元素。特别是,请查看某些平板电脑可能无法使用的硬件功能,例如:
- android.hardware.telephony
- android.hardware.camera(指后置摄像头)或
- android.hardware.camera.front
所以,你必须更换这两行:
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
这一个:
<uses-feature android:name="android.hardware.camera" android:required="false" />
&安培;当然,通过此检查处理相机功能在设备中不存在的情况下处理:
if (Camera.getNumberOfCameras() > 0){
// device has camera, it is safe to use it here
}
答案 3 :(得分:0)
我不知道确切的答案,但我知道Play会根据这些数字确定支持的设备列表:
android:minSdkVersion="11"
android:targetSdkVersion="19"
它们应尽可能地低,以便您的代码能够正常工作。数字越小,兼容性列表就越长。
之后,所需权限列表会产生很大的不同。因为某些设备不具备所需的功能。所以你也必须交叉引用该列表。