【问题标题】:Android app "unsupported" device again (answered: Bluetooth permission issue)Android 应用再次“不支持”设备(已回答:蓝牙权限问题)
【发布时间】:2014-01-24 14:23:55
【问题描述】:

我在 SO 上看到了几个这样的问题,但对于我的特殊情况,没有很好的答案。一位使用“AnydataVisual Land Prestige 7D– PRO7D”Android 平板电脑的用户问我,为什么我的应用在 Google Play 上被列为他的设备“不受支持”。不知道为什么,也没有办法向 Google 询问这个问题。

我阅读了对类似问题的其他回复,但它们并不适用。根据设备规格(http://www.visual-land.com/107d.html,向下滚动,单击“技术规格”选项卡),它具有 Cortex-A9 1.6GHz CPU、1GB RAM、7 英寸 1024x600 屏幕、运行 Android 4.1 Jelly Bean、WiFi、摄像头、扬声器、耳机插座。虽然没有提到蓝牙,而且我的清单要求 BLUETOOTH 许可,但这不应该排除设备。用户侧加载了我的 APK 并且应用程序没有问题。还有其他想法吗?下面是我的 AndroidManifest.xml 的相关片段:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      android:installLocation="auto"
      package="com.hyperionics.avar"
      android:versionCode="4040000"
      android:versionName="4.4.0">
<uses-sdk android:minSdkVersion="8"
          android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<supports-screens
        android:xlargeScreens="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:anyDensity="true" />
<application android:label="@string/app_name"
             android:icon="@drawable/at_voice"
             android:name="com.hyperionics.avar.TtsApp"
        >
(...)

我还在应用程序中使用 JNI 本地库,并为 ARM、ARM-V7、MIPS 和 Intel CPU 构建单独的包,根据 Google 的说法,在其他 4518 设备上没有问题...

该应用是用于网页、文章、PDF 文件等的 TTS 阅读器。或者,如果我们无法弄清楚这一点,是否有人知道就此类问题与 Google 联系的好方法?

格雷格

【问题讨论】:

    标签: android app-store device android-bluetooth android-market-filtering


    【解决方案1】:

    虽然没有提到蓝牙,我的清单要求蓝牙许可,但这不应该排除设备

    是的,应该的。

    引用the documentation:

    上表中列出的一些特性常量在相应的 API 之后可供应用程序使用;例如,android.hardware.bluetooth 特性是在 Android 2.2(API 级别 8)中添加的,但它所指的蓝牙 API 是在 Android 2.0(API 级别 5)中添加的。因此,一些应用程序在能够通过系统声明它们需要 API 之前就能够使用 API。

    为防止这些应用无意中可用,Google Play 假定某些与硬件相关的权限表明默认情况下需要底层硬件功能。例如,使用蓝牙的应用程序必须在一个元素中请求 BLUETOOTH 权限——对于旧版应用程序,Google Play 假定权限声明意味着应用程序需要底层的 android.hardware.bluetooth 功能并基于该功能设置过滤.

    a special section in the documentation 是关于正确设置清单以获得解决您的场景的蓝牙权限。

    【讨论】:

    • 非常感谢您提供的非常有用的答案!根据您提到的特殊文档部分,我在清单中添加了 ,它确实解决了问题。添加了大约 500 种更多受支持的设备。非常感谢!
    猜你喜欢
    • 2018-02-27
    • 2022-09-27
    • 1970-01-01
    • 2012-07-20
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多