我的应用不支持Nexus 7。

5

我的清单文件(权限和支持屏幕)如下:

<uses-sdk
        android:maxSdkVersion="17"
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />

    <permission
        android:name="com.ecw.healow.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="my_app_package.permission.C2D_MESSAGE" />
    <!-- App receives GCM messages. -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <!-- GCM requires a Google account. -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <!-- Keeps the processor from sleeping when a message is received. -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-feature android:name="android.hardware.camera" android:required="true"/>
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true" />

在上传到Play商店后,它没有将Nexus 7显示为受支持的设备。有什么猜测吗?

尝试移除 support-screens。 - Arun C
1
为什么要设置maxSdkVersion?minSdkVersion和targetSdkVersion就足够了。实际上,建议根本不要设置它:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#max - Brett Duncavage
是的,我认为@ArunCThomas是正确的。在supports-screens中有一些值你没有设置为true。除非你真的不希望你的应用程序在某些显示尺寸的设备上运行,否则根本没有必要这样做。 - Brett Duncavage
谢谢Brett...链接很有用...我移除了maxSdkVersion。 - hemu
1个回答

14

尽管Nexus 7有前置摄像头,但根据为Jelly Bean准备应用,要求摄像头意味着您的应用将显示为与Nexus 7不兼容。如果您希望兼容Nexus 7,请设置required="false"。

在启动任何与相机相关的功能之前,您可以检测设备是否具备相机硬件以确保您有可用的相机。


在 Nexus-7 模拟器上,如果设置了 required="true",则模拟器前置摄像头也会弹出。但是由于该标志设置为 true,谷歌可能不认为该应用与 Nexus 7 兼容。是这样吗?我尝试了 required="false",相机功能正常工作。那么下次当我将新的 APK 推送到 Play Store 时,它会将 Nexus-7 视为支持的设备吗? - hemu
1
是的,如果您将其设置为required="false",Nexus 7将显示为受支持的设备。请注意,这意味着其他没有摄像头的设备也可能看起来兼容 - 请确保检测相机硬件,以防万一(否则您的应用程序在尝试启动相机时会崩溃)。 - ianhanniballake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接