清单文件和支持的设备在安卓市场中显示

14

有没有一款工具可以测试我的Android清单,以查看在给定设置下哪些设备受到Android市场的支持?我希望有其他方法,而不是将每个测试都上传到Android市场。

我需要找出为什么某些小屏幕设备不受支持,但我还没有找到原因。

我目前支持以下屏幕,我认为android:smallScreens应该让安装了Android 2.3的三星Galaxy Mini安装我的应用程序,但事实并非如此。

<supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="true" />

编辑:当前的权限和功能:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<uses-permission android:name="android.permission.FLASHLIGHT"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

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

我认为我必须删除其中一些内容- 我这里有一些垃圾,不再需要了。 今晚/明天会深入研究。


你在清单文件的minSdkVersiontargetSdkVersion中设置了哪些值,以及你在项目属性中的“Android 项目构建目标”是什么? - Jarno Argillander
android:minSdkVersion="8",没有设置targetSdkVersion(我应该设置吗?)。使用Google API的平台2.2作为构建目标。 - Janar Jürisson
你的应用程序可能会使用一些非常特定的权限,而某些手机可能没有这些权限,例如没有相机或某些传感器吗? - Jarno Argillander
这就是我最初提出这个问题的原因-我不知道。我必须手动检查一下。如果能以某种方式“验证”它会更容易些。但我想最终还是得手动处理。 - Janar Jürisson
你的应用程序拥有哪些特权? - Jarno Argillander
添加了权限和功能。 - Janar Jürisson
4个回答

4
有没有工具可以测试我的Android清单以查看在给定设置下哪些设备受到Android市场支持?
没有,因为Google是唯一拥有(相当)完整的所有Android设备及其功能的目录的公司。
如果有人创建了一个可众包的独立数据库(例如,可能是Fluidinfo上的某些东西),那么独立工具可以使用它。
关于您特定的问题,在屏幕大小之后,下一个最有可能的候选者将是暗示设备缺少某些必需功能的权限。

我有一个想法。无论如何,谢谢大家。 - Janar Jürisson

4

Galaxy Mini并非不支持相机权限,问题在于

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

这个功能默认已经加入了

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

在这里,您可以找到有关它的更多信息:http://developer.android.com/guide/practices/compatibility.html,位于“未来兼容性”下面。 如果您使用<uses-feature android:name="android.hardware.camera" />添加相机权限,则不会添加自动对焦功能,并且现在与您的应用程序兼容。 希望这有所帮助。


3

某些权限,如相机或ACCESS_COARSE_LOCATION,意味着其他功能设置。我发现将暗示的功能设为可选项可以将我的应用程序兼容性从1100个设备提高到2000多个设备。

对我来说,特别棘手的是相机自动对焦和基于网络的位置,这些都是由相机和粗略位置权限暗示的。为了解决这个问题,我使用了以下方法:

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

以下是我在Play商店的游戏《僵尸屠夫(精简版)》中使用的设置。我进行了8次上传尝试,花费了三天时间才获得所需的权限。Google确实应该为此提供兼容性工具。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接