【问题标题】:Is there a tool that tells why my android app is not visible to a specific device in play store?是否有工具可以说明为什么我的 android 应用对 Play 商店中的特定设备不可见?
【发布时间】:2017-06-05 19:08:40
【问题描述】:

我的应用在 Play 商店的特定设备 (Honeywell CT50) 上不可见。 它在另一个霍尼韦尔设备 CN51 中可见。
CT 50 可与 google play 配合使用,因为它在 supported device list for google play 中列出 从 2013 年发布的一些 blog post 中,我发现 google play 用于显示阻止特定设备在 Play 商店中显示的功能。 我现在在 Play 商店中看不到此类信息。不兼容的设备只是灰显。 我尝试使用相同的清单文件在商店中发布示例应用程序(具有相同的使用库、使用权限、权限、使用功能、支持屏幕,但不是相同的活动、接收器或服务),但示例应用程序在游戏商店。

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14"/>

【问题讨论】:

  • 没有工具,这个你自己确定。您能否列出清单中的相关部分以及设置的最低 sdk 版本?
  • CT50 的 Android 6.0.1 高于 api 级别 14。所以,这应该不是问题。
  • 我同意这一点,您能否更详细地列出您在上面提到的其他部分。我相信一旦知道了这些信息,就会有人能够提供帮助。

标签: android android-studio google-play


【解决方案1】:

没有工具可以做到这一点。我们需要使用示例应用程序的 onCreate 方法中的以下代码来测试特定设备中的所有硬件功能(如android.hardware.location.gps)。

setContentView(R.layout.activity_main);
PackageManager pm = getPackageManager();
TextView tv = (TextView) findViewById(R.id.hello);

if (!pm.hasSystemFeature(PackageManager.FEATURE_LOCATION)) {
    tv.append(PackageManager.FEATURE_LOCATION+" is NOT available \n");
} else {
    tv.append(PackageManager.FEATURE_LOCATION+" is available \n");

}

我的问题: 我的清单具有以下权限 ACCESS_FINE_LOCATION。仅当设备具有以下功能时,具有此权限的应用才会在 Play 商店中可见

android.hardware.location.gps

我遇到问题的特定 Honeywell CT50 设备没有上述功能。因此,我的应用程序没有出现在此设备的 Play 商店中。 另外,我的目标API等级是14,如果是20以上,就不会出现这个问题(表here有提到)

解决办法: 我通过阅读文档here找到了解决方案。

注意声明,包括任何声明的 android:required 属性,总是优先于特征 表 2 中的权限所暗示的。对于这些权限中的任何一个, 您可以通过显式禁用基于隐含功能的过滤 在元素中明确声明隐含的特征, 带有 android:required="false" 属性。例如,禁用 任何基于 CAMERA 权限的过滤,您都可以添加这个 清单文件的声明:解决方案 问题是添加以下行

<uses-feature android:name=" android.hardware.location.gps" android:required="false" />

通过上述行,我们确保 gps 功能不是必需的功能。因此,Play 商店不会针对没有此功能的设备过滤掉应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多