2015-12-21 19 views
9

Meine App ist in BETA TESTING. Es ist kompatibel mit iBall Tablet (Tablet hat SIM-Karte Fähigkeit) und mit Nexus5 läuft Marshmallow, aber ist nicht kompatibel mit Nexus7 läuft Marshmallow (und auch mit Nexus10. Ich habe es noch nicht überprüft). Ich bin mir nicht sicher, welche Erlaubnis das verursacht. Oder liegt es an targetSdkVersion? (Ich glaube nicht, targetSdkVersion das verursacht mir bitte korrigieren, wenn ich falsch bin.)App nicht kompatibel mit Nexus7 läuft 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 
    } 

Auch habe ich nicht Laden Sie Tablet-Screenshots in die Entwicklerkonsole hoch. Im Moment ist die App für das Telefon gedacht, aber ich möchte sie für alle Android-Geräte verfügbar machen. Worüber muss ich nachsehen?

Vielen Dank im Voraus.

+0

Die Kompilierungs-SDK-Version und die Ziel-SDK-Version unterscheiden sich. Kannst du es gleich machen und es versuchen? –

+0

@JayakrishnanSalim: App ist kompatibel mit Nexus5 läuft Marshmallow. – Hemanth

+0

Könnten Sie versuchen, den Support-Bildschirmabschnitt zu entfernen? Wenn Sie jedes Gerät zulassen, ist es nicht notwendig. – Christopher

Antwort

4

Kann sein, dass Ihr Tablet einige Funktionen wie Telefon nicht unterstützt. Deshalb widerspricht es den Berechtigungen. Seine getan wie

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

Andere mögliche Merkmale sind:

android.hardware.camera

android.hardware.camera.autofocus

android.hardware.location.gps

android.hardware.location

android.hardware.location.network

Sie können check all the Features Required in Ihrer Anwendung.

+0

Ich sehe, das wurde downvoted, aber ich denke, das ist das Problem. Ich habe eine App mit SMS und musste genau dieses -Tag verwenden, um auf Nicht-Telefongeräten zu funktionieren. – spartygw

4

Fügen Sie einfach requiresSmallestWidthDp in supports-screens Element hinzu.

Zum Beispiel hat ein typisches Handy Bildschirm eine kleinste Breite von 320dp, ein 7 "Tablet hat eine kleinste Breite von 600dp, und ein 10" Tablet hat eine kleinste Breite von 720dp. Diese Werte sind im Allgemeinen die kleinste Breite, da sie die kürzeste Dimension des verfügbaren Platzes auf dem Bildschirm sind.

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

Lesen Sie mehr über support-screen

eine weitere Sache, wenn Sie Ihren Code mit 23 API sind kompilieren dann, warum es targetSdkVersion 21 Änderung 23. Verwendung (vergessen nicht die Erlaubnis Modell implementieren für Ihre app, wenn das Ziel 23 API)

Hinweise: wenn Sie für alle android-Geräte verfügbar App machen wollen, dann müssen Sie diese supports-screens Elemente sonst Google verwenden spielen zeigen Sie "App ist nicht mit diesem Gerät kompatibel" oder eine ähnliche Nachricht. Überprüfen Sie einige alte answer, die mit Tabletten Bildschirm verwandt ist

+0

Wenn ich 'requestsSmallestWidthDp' nicht verwende, sollte es standardmäßig für alle Geräte verfügbar sein. Außerdem plane ich nicht, das Marshmallow-Berechtigungssystem in meiner App zu implementieren, deshalb verwende ich 'targetSdkVersion' als' 21'. Ich denke nicht, dass es für dieses Problem verantwortlich ist, da die App mit Nexus5, auf dem Marshmallow läuft, kompatibel ist. – Hemanth

+0

nein, wenn Upload-App auf Google Play unterstützt-Bildschirme sind erforderlich, um kompatible Geräte perameter. Wenn Sie keine Unterstützungsbildschirme verwenden, unterstützen einige der Nexus-Geräte Ihre App nicht. Google Play zeigt Ihnen "App ist nicht mit diesem Gerät kompatibel" –

Verwandte Themen