权限不支持设备

时间:2013-12-05 13:15:03

标签: android permissions google-play android-manifest

我已经在Google Play中发布了一个应用程序,在测试过程中,我发现有些设备需要ACCESS_WIFI_STATE的额外权限,所以我添加了它,一切都很顺利。

将其添加到Google Play并尝试在需要许可的设备上下载(在这种情况下,它是Galaxy Tab 2),我收到以下错误:

Previously active APKs supported more devices than those in the draft configuration. Some devices will not receive upgrades.
Devices currently running version 1 are no longer supported by the current configuration. Such devices will not receive upgrades. 
API levels in range 14+ and 
Release track containing any of [ALPHA] and 
Screen layouts containing any of [small, normal, large, xlarge] and 
Native platforms containing any of [armeabi, armeabi-v7a, mips, x86] and 
Features containing all of [android.hardware.BLUETOOTH, android.hardware.CAMERA, android.hardware.camera.AUTOFOCUS, android.hardware.screen.PORTRAIT, android.hardware.TOUCHSCREEN] but excluding any of [android.hardware.WIFI]

我的清单是这样的:

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

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.android.vending.BILLING"/>

有人可以解释为什么会出现此错误吗?我看到的唯一设备是我需要添加给定权限的确切设备。

Old Manifest就是这样:

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

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.android.vending.BILLING"/>

1 个答案:

答案 0 :(得分:0)

来自uses-permission documentation

  

在某些情况下,您请求的权限    可以影响您的应用程序的过滤方式   Google Play。

     

如果您请求与硬件相关的权限 - 例如CAMERA -   Google Play假定您的应用需要基础版   硬件功能,并从没有的设备中过滤应用程序   提供它。

     

要控制过滤,请始终明确声明硬件功能   <uses-feature>元素,而不是依靠Google Play   “发现”<uses-permission>元素中的要求。然后,如果   如果要禁用特定功能的过滤,可以添加   android:required="false"属性声明。

     

有关暗示硬件功能的权限列表,请参阅   <uses-feature>元素的文档。

所以你可以添加

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

如描述here