2015-12-21 2 views
9

Мое приложение в BETA TESTING. Он совместим с планшетом iBall (планшет имеет возможность SIM-карты), а Nexus5 работает с Marshmallow, но не совместим с Nexus7, работающим с Marshmallow (а также с Nexus10. Я еще не проверял его). Я не уверен, какое разрешение вызывает это. Или это из-за targetSdkVersion? (Я не думаю, что targetSdkVersion вызывает это Пожалуйста, поправьте меня, если я ошибаюсь.)Приложение несовместимо с Nexus7 running Marshmallow

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:

compileSdkVersion 23 
    buildToolsVersion '23.0.1' 

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

Кроме того, я не сделал загрузите скриншоты с экрана планшета на консоль разработчика. На данный момент приложение предназначено для телефона, но я хочу сделать его доступным для всех устройств Android. Что мне нужно посмотреть?

Заранее спасибо.

+0

Скомпилированная версия SDK и целевая версия SDK отличаются. Можете ли вы сделать это так же и попробовать? –

+0

@JayakrishnanSalim: Приложение совместимо с Nexus5, работающим с Marshmallow. – Hemanth

+0

Не могли бы вы попытаться удалить раздел экрана поддержки? Если вы разрешаете каждое устройство, это не обязательно. – Christopher

ответ

4

Может быть, ваш планшет не поддерживает некоторые функции, такие как телефон. Вот почему он противоречит разрешениям. Его сделали как

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

Другие возможные особенности:

android.hardware.camera

android.hardware.camera.autofocus

android.hardware.location.gps

android.hardware.location

android.hardware.location.network

Вы можете check all the Features Required в приложении.

+0

Я вижу, что это было приостановлено, но я думаю, что это проблема. У меня есть приложение, которое включает SMS и должно было использовать этот точный тег для работы на нетелефонных устройствах. – spartygw

4

просто добавьте это requiresSmallestWidthDp в supports-screens элемент.

Например, обычный экран телефона имеет наименьшую ширину 320dp, 7-дюймовый планшет имеет наименьшую ширину 600dp, а планшет размером 10 "имеет наименьшую ширину 720dp. Эти значения обычно являются наименьшей шириной, потому что они являются кратчайшим размером доступного пространства экрана.

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

подробнее о support-screen

еще одну вещь, если вы компиляции кода с API 23, то почему бы использовать targetSdkVersion 21 изменить его на 23. (не забыл реализовать модель разрешения для вашего приложение, когда цель 23 API)

Примечания: если вы собираетесь сделать приложение, доступное для всех Android устройств, то вы должны использовать эти supports-screens элементы еще Google играть показать вам "не совместимо с данным устройством" или подобное сообщение. проверьте некоторые старые answer, которые связаны с экраном таблеток

+0

Если я не использую 'requireSmallestWidthDp', по умолчанию он должен быть доступен для всех устройств. Правильно? Кроме того, сейчас я не планирую использовать систему разрешений Marshmallow в своем приложении, поэтому я использую 'targetSdkVersion' как' 21'. Я не думаю, что это отвечает за эту проблему, поскольку приложение совместимо с Nexus5, работающим с Marshmallow. – Hemanth

+0

нет, если для совместимого устройства требуется загрузить приложение в google play support-screens. если вы не собираетесь использовать элемент поддержки-экранов, некоторые из устройств nexus не поддерживают ваше приложение. Google play показывает, что «приложение несовместимо с этим устройством» –

Смежные вопросы