Inkompatibilitäten zwischen "gleichen" Geräten

  • Hallo,


    ich habe eine App entwickeln lassen und möchte sie veröffentlichen. In der Google Developer Console wird angezeigt das die apk von mehr als 7300 Geräten unterstütz wird. Wenn ich aber genauer gucke stelle ich fest das es teilweise Geräte gibt die mal unterstützt werden und mal nicht (wie z.B. das Galaxy S7 siehe Screenshot). Google selber gibt leider keine Hinweise darauf und mir ist nicht klar was der Unterschied zwischen SamsungGalaxy S7– heroqltetmo und SamsungGalaxy S7– heroqltemtr ist. Das einzige was ich bisher gefunden habe ist das die Kompatibilitäten über das Android manifest gesteuert werden.
    Hat von euch jemand eine Idee wo das Problem liegt, oder wurde das ganze gar schon mal hier irgendwo diskutiert (dann wäre ich über den Link dankbar)?


    Viele Grüße
    Arne

  • Einen Link kann ich dir zwar nicht geben, aber die Modellnummern sind abhängig vom verbauten Prozessor und dem Carrier(Mobilfunkanbieter). Beim S7 ist es bspw. so, dass mal ein Snapdragon Prozessor und mal ein Exynos verbaut wurde.


    Wenn du Zugriff auf Source Code und Manifest hast, könntest du einen Teil des Manifestes hier posten und wir gucken mal. Wenn du nur die APK hast, muss eh der Entwickler nachbessern

  • Hallo,


    ich hänge das manifest gerne an und freue mich auf eure Kommentare und Tipps. Mittlerweile sind wir ein bisschen weiter, wir haben die Screen Informationen aus dem manifest entfernt und "treffen" jetzt mehr Devices (aber immer noch nicht alls GS7).


    Viele Grüße
    Arne


    <?xml version="1.0"?>


    -<manifest package="com.senvion.tcc" xmlns:android="http://schemas.android.com/apk/res/android">


    <!--<uses-sdk android:minSdkVersion="18" android:targetSdkVersion="23" />-->



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



    -<compatible-screens>


    <!-- all small size screens -->



    <screen android:screenDensity="ldpi" android:screenSize="small"/>


    <screen android:screenDensity="mdpi" android:screenSize="small"/>


    <screen android:screenDensity="hdpi" android:screenSize="small"/>


    <screen android:screenDensity="xhdpi" android:screenSize="small"/>


    <screen android:screenDensity="xxhdpi" android:screenSize="small"/>


    <screen android:screenDensity="xxxhdpi" android:screenSize="small"/>


    <!-- all normal size screens -->



    <screen android:screenDensity="ldpi" android:screenSize="normal"/>


    <screen android:screenDensity="mdpi" android:screenSize="normal"/>


    <screen android:screenDensity="hdpi" android:screenSize="normal"/>


    <screen android:screenDensity="xhdpi" android:screenSize="normal"/>


    <screen android:screenDensity="xxhdpi" android:screenSize="normal"/>


    <screen android:screenDensity="xxxhdpi" android:screenSize="normal"/>


    </compatible-screens>



    -<application android:name="com.senvion.tcc.ui.base.App" android:theme="@style/Theme.Main" android:supportsRtl="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:allowBackup="true">


    <activity android:name="com.senvion.tcc.ui.screen.ScadaLoginActivity" android:theme="@style/Theme.Login"/>



    -<activity android:name="com.senvion.tcc.ui.screen.ListActivity" android:launchMode="singleTask">



    -<intent-filter>


    <action android:name="android.intent.action.MAIN"/>


    <category android:name="android.intent.category.DEFAULT"/>


    <category android:name="android.intent.category.LAUNCHER"/>


    </intent-filter>


    </activity>


    <activity android:name="com.senvion.tcc.ui.screen.DetailActivity" android:label="" android:parentActivityName="com.senvion.tcc.ui.screen.ListActivity"/>


    </application>


    </manifest>

  • Hi,


    also das Manifest sieht erstmal ok aus, vorausgesetzt es ist auch so gewollt, dass ihr keine Tablets oder größere Phablets unterstützen wollt. Der Teil mit den '<compatible-screens>' ist übrigens einfach aus einem Beispiel von der offiziellen Google Seite kopiert.


    Ich nehme mal an, dass der Teil mit den kompatiblen Screens immer noch so im Manifest steht. Es könnte sein, dass die Galaxy S7 Edge Modelle exkludiert werden, weil diese einen größeren Bildschirm als die 'normalen' Modelle besitzen. Diese könnten dann als 'screenSize=large' interpretiert werden, welche in dem Manifest nicht auftauchen. Ist allerdings nur eine Vermutung und ich habe keine Daten dazu gefunden. Um das mal zu testen könntet ihr diesen Block innerhalb von '<compatible-screens>' einfügen:


    XML
    <screen android:screenDensity="ldpi" android:screenSize="large"/>
    <screen android:screenDensity="mdpi" android:screenSize="large"/>
    <screen android:screenDensity="hdpi" android:screenSize="large"/>
    <screen android:screenDensity="xhdpi" android:screenSize="large"/>
    <screen android:screenDensity="xxhdpi" android:screenSize="large"/>
    <screen android:screenDensity="xxxhdpi" android:screenSize="large"/>


    Viele Grüße,
    Q


    Edit: Wenn das funktionieren sollte und ihr das drin lasst, müsst ihr natürlich sicherstellen, dass die App auch auf größeren Bildschirmen ordentlich dargestellt wird.

  • Hi,


    hmm... kleiner Hinweis meinerseits....ich teste oft meine App(s) auf meinem normalen Smartphone, Samsung Galaxy S7, und in den Manifest Dateien habe ich nix explizit angegeben und sie funktionieren trotzdem einwandfrei, zumindest was die Display-Sachen angehen....alles andere liegt im Code versteckt und ist eh meine Schuld ;)



    Gruß Carsten

  • Wenn du <compatible-screens> nicht im Manifest deklarierst, wird es so behandelt, dass alle screens kompatibel sind. Sobald du allerdings <compatible-screens> deklariert hast, werden alle dort nicht definierten screens als inkompatibel eingestuft. Somit macht das einen riesigen Unterschied, ob und wie damit umgegangen wird.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!