应用程序未出现在某个设备的Android电子市场中(Android电子市场过滤器)

时间:2012-01-10 08:15:24

标签: android android-manifest

Android Market过滤系统存在一些问题。我已经 阅读有关Android Market Filters的文档 developer.android.com,我想问题与此有关 屏幕或密度限制。

我的应用程序的清单包含以下内容:

  • 使用权限ACCESS_FINE_LOCATION
  • 使用权限INTERNET
  • uses-permission READ_PHONE_STATE
  • 使用权限SEND_SMS
  • 使用权限ACCESS_COARSE_LOCATION
  • 使用权限ACCESS_COARSE_UPDATES
  • 使用权限RECEIVE_SMS
  • 使用权限ACCESS_NETWORK_STATE
  • uses-permission WAKE_LOCK
  • 使用权限WRITE_EXTERNAL_STORAGE
  • minSdkVersion是7

期待这个使用权限,很明显Android Market会 将应用限制为那些没有GPS,3G /的设备 WiFi,电话或SD存储。

但是,我有一台摩托罗拉Xoom平板电脑(Android 3.1) 这些硬件功能,它无法在我看到我的应用程序 Android Market。

我不会通过以下方式声明任何支持的屏幕 元素,因为当android:minSdkVersion设置为4或更高时, 默认情况下,应用程序被视为支持所有屏幕大小。 但我的应用程序基于API级别7和android:xlargeScreens 属性在API级别9之前不会出现。

有什么想法吗?

提前致谢。

Xavi Barrera Quintanilla

2 个答案:

答案 0 :(得分:2)

您可以将minSdkVersion设置为7,但使用targetSdkVersion=9target=android-9构建,并且应用程序仍将在具有api-level 7的设备上运行,但您可以使用这些属性在api-level 9中定义。因此,您可以设置android:xlargeScreens,同时仍然保持应用程序与2.1兼容。

缺点是现在IDE会将api-level 9上的任何可用内容视为有效,并且如果在具有较旧固件的设备上运行,则应用程序将在运行时失败。我们通过将目标设置为minSdkVersion进行开发构建并使用已修改的清单和目标设置到我们使用属性的版本来发布构建来解决这个问题。

答案 1 :(得分:1)

我刚刚确认Jan Hudec's solution有效,您必须将android:xlargescreens设置为true才能使您的应用无法针对任意10英寸平板电脑进行过滤,无论Android是什么操作系统版本我们幸运地在我的工作场所有3个不同的10英寸平板电脑和一个7英寸平板电脑可用于测试。运行Jelly Bean的Asus Transformer和Nexus 10以及运行Honeycomb的Galaxy Tab 10.1都被列为不兼容设备,但我们的Nexus 7兼容。

请务必将targetSdkVersion(文档建议您明确设置)设置为8或更高,minSdkVersion可以设置为7或更高。

不幸的是,在我将android:xlargeScreens设置为true之前,在Android开发者控制台中发布应用程序时,我仍然看到Galaxy Tab 10.1,Nexus 10等都被列为受支持的设备。因此,直到该应用程序出现在Play商店中,它声称该应用程序与这些平板电脑不兼容。开发人员控制台可能只检查清单中的minSdkVersion,而不支持屏幕。