Nexus 7兼容性问题

时间:2013-06-24 04:22:16

标签: android android-manifest android-screen-support

我创建了一个仅适用于Android标签的应用程序。该应用程序的Manifest.xml声明是:

  <supports-screens android:smallScreens="false"
              android:normalScreens="false"
              android:largeScreens="true"
              android:xlargeScreens="true"
              android:requiresSmallestWidthDp="600" />   

<uses-permission android:name="in.wptrafficanalyzer.locationingooglemapv2.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.tab.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

我可以从Google Play商店下载该应用,但是当我尝试从Google Nexus 7标签下载时,我收到以下错误:

  

此应用与您的Nexus 7 /不兼容   该项目与您的设备不兼容

请帮助我完成清单声明所需的更改,以使App与Nexus 7兼容

注意:我还在Manifest.xml文件中使用以下标记

 <uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

3 个答案:

答案 0 :(得分:1)

根据Permissions that Imply Feature Requirements页面,android.permission.CALL_PHONE隐含android.hardware.telephony,这当然是Nexus 7所没有的。通过在Manifest中添加以下行来确保不需要电话:

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

答案 1 :(得分:1)

我想也许问题是应用程序请求许可Nexus 7 Tab上不存在的内容 清单中的此权限隐式声明了“android.hardware.telephony”功能。 Nexus 7 Tab支持这个吗? 请参阅文档:http://developer.android.com/guide/topics/manifest/uses-feature-element.html#market-feature-filtering

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

试试这个,保留权限,但声明“电话”功能为假。

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

如果不起作用,也许您应该更改“normalScreens”设置或“requiresSmallestWidthDp”设置,然后重试。

使用下面的Open GL功能

<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />

此设置将排除不支持OpenGL ES 2.0的设备,但Nexus 7中的GPU为ULP GeForce,OpenGL ES版本为2.0。

答案 2 :(得分:1)

在support-screens标签

中添加以下行
android:anyDensity="true"

在清单中添加uses-feature Tag,

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