简体   繁体   English

应用程序与运行Marshmallow的Nexus7不兼容

[英]App not compatible with Nexus7 running Marshmallow

My app is in BETA TESTING. 我的应用程序是在BETA测试中。 It's compatible with iBall tablet (tablet has sim card capability) and with Nexus5 running Marshmallow, but isn't compatible with Nexus7 running Marshmallow (and also with Nexus10. I didn't check it yet). 它兼容iBall平板电脑(平板电脑具有SIM卡功能)和运行Marshmallow的Nexus5,但与运行Marshmallow的Nexus7(以及Nexus10)不兼容。我还没有检查它。 I am not sure which permission is causing this. 我不确定是哪个权限造成这种情况。 Or is it because of targetSdkVersion? 或者是因为targetSdkVersion? (I dont think targetSdkVersion causes this. Please correct me if I am wrong) (我不认为targetSdkVersion导致这个。如果我错了请纠正我)

Manifest : 清单

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-feature android:name="android.permission.RECEIVE_SMS" android:required="false" />
    <uses-feature android:name="android.permission.READ_SMS" android:required="false" />
    <uses-feature android:name="android.permission.READ_PHONE_STATE" android:required="false" />

    <permission
        android:name="in.company.company.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="in.company.company.permission.C2D_MESSAGE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

    <supports-screens
        android:anyDensity="true"
        android:xlargeScreens="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true" />

build.gradle : build.gradle

    compileSdkVersion 23
    buildToolsVersion '23.0.1'

    defaultConfig {
        applicationId "in.company.company"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 8
        versionName "1.7"
        multiDexEnabled true
    }

Also, I didn't upload any Tablet screenshots on developer console. 此外,我没有在开发者控制台上上传任何Tablet屏幕截图。 For now, the app is designed for phone, but I want to make it available for all android devices out there. 目前,该应用程序专为手机设计,但我想让它可用于所有Android设备。 What I need to look into? 我需要研究什么?

Thanks in advance. 提前致谢。

just add this requiresSmallestWidthDp in supports-screens element. 只需在supports-screens元素中添加this requiresSmallestWidthDp

For example, a typical handset screen has a smallestWidth of 320dp, a 7" tablet has a smallestWidth of 600dp, and a 10" tablet has a smallestWidth of 720dp. 例如,典型的手机屏幕具有320dp的最小宽度,7“平板电脑具有600dp的最小宽度,而10”平板电脑具有720dp的最小宽度。 These values are generally the smallestWidth because they are the shortest dimension of the screen's available space. 这些值通常是最小宽度,因为它们是屏幕可用空间的最短尺寸。

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

read more about support-screen 阅读有关支持屏幕的更多信息

one more thing if you are compile your code with API 23 then why use targetSdkVersion 21 change it to 23.(don't forgot to implement permission model for your app when target 23 API) 如果您使用API​​ 23编译代码,还有一件事就是为什么使用targetSdkVersion 21将其更改为23.(当目标23 API时,不要忘记为您的应用实现权限模型)

Notes: if you are going to make app available for all android devices then you must have to use this supports-screens elements else Google play show you "app is not compatible with this device" or similar message . 注意:如果您要为所有Android设备提供应用程序,那么您必须使用此supports-screens元素,否则Google Play会向您显示“应用程序与此设备不兼容”或类似消息 check some old answer which is related to tablets screen 检查一些与平板电脑屏幕相关的旧答案

May be your Tablet doesn't support some features like phone. 可能是你的平板电脑不支持手机等功能。 That's why its conflicting with permissions. 这就是它与权限冲突的原因。 Its done like 它完成了

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

Other possible features are : 其他可能的功能是:

android.hardware.camera android.hardware.camera

android.hardware.camera.autofocus android.hardware.camera.autofocus

android.hardware.location.gps android.hardware.location.gps

android.hardware.location android.hardware.location

android.hardware.location.network android.hardware.location.network

You can check all the Features Required in your application. 您可以检查应用程序中的所有必需功能

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM