由于显式设置,Nexus 7不兼容

时间:2012-10-10 14:51:51

标签: android nexus-7

我的应用程序未显示在Nexus 7上。 播放商店控制台在设备列表中显示Nexus 7:

Unsupported devices due to your manifest settings:

Nexus 7(grouper)"

我的清单看起来像这样:

...

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

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

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<compatible-screens>
    <screen android:screenSize="normal" android:screenDensity="mdpi"/>
    <screen android:screenSize="normal" android:screenDensity="hdpi"/>
    <screen android:screenSize="normal" android:screenDensity="xhdpi"/>

    <screen android:screenSize="large" android:screenDensity="ldpi"/>
    <screen android:screenSize="large" android:screenDensity="mdpi"/>
    <screen android:screenSize="large" android:screenDensity="hdpi"/>
    <screen android:screenSize="large" android:screenDensity="xhdpi"/>

    <screen android:screenSize="xlarge" android:screenDensity="ldpi"/>
    <screen android:screenSize="xlarge" android:screenDensity="mdpi"/>
    <screen android:screenSize="xlarge" android:screenDensity="hdpi"/>
    <screen android:screenSize="xlarge" android:screenDensity="xhdpi"/>
</compatible-screens>

...

我不需要相机,这似乎是通常不兼容问题的情况。 我没有使用supports-screens条目(我想要排除所有小屏幕设备,以及ldpi普通设备,这不可能使用支持屏幕条目AFAIK)。

任何想法可能是什么问题?

一个有趣的细节可能是nexus 7报告有DENSITY_TV(213dpi)。但是,“tv”不是android:screenDensity标签的可能值。

编辑: 开发者控制台报告以下所需权限:

Permissions: 
android.permission.INTERNET, 
android.permission.ACCESS_NETWORK_STATE, 
android.permission.WAKE_LOCK, 
android.permission.READ_PHONE_STATE, 
android.permission.WRITE_EXTERNAL_STORAGE, 
com.android.vending.BILLING, 
android.permission.ACCESS_WIFI_STATE

Features: 
android.hardware.screen.landscape, 
android.hardware.touchscreen, 
android.hardware.wifi

3 个答案:

答案 0 :(得分:7)

确实如此,您无法将"tvdpi"添加到清单中。但是有一种解决方法,如果你输入"213"代替,正如你所指出的那样是密度的dpi值,eclipse会对它感到满意并且你的应用程序也会显示出来nexus 7设备。

答案 1 :(得分:4)

阅读您的权限列表,READ_PHONE_STATE可能会导致Google Play暗示您的应用需要android.hardware.telephony功能,这在Nexus 7中不可用。

尝试将此添加到您的清单中以解决此问题:

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

您可以阅读有关"Permissions that Imply Feature Requirements" here的更多信息。

答案 2 :(得分:3)

有一次,我上传了我的应用。它也不适用于nexus 7。在我的情况下,它是因为我在我的清单文件

中引起的
<uses-permission android:name="android.permission.CALL_PHONE" />

我有上面一行,因为我可以在一个应用程序屏幕中调用带有Intent的电话号码。这个功能很小,对应用程序来说并不重要。这就是说我希望应用程序在没有电话功能的设备中运行。

我在Android开发人员博客中找到了这篇文章Five Steps to Futre Hardware Hapinness,它解释了这个问题。

将下一行添加到清单文件,生成新的APK并将其上传到Play商店,使我的应用程序与另一组设备(包括nexus 7)兼容。

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