Das geht mir wirklich auf die Nerven. Ich habe alles versucht, um mit meiner App auf etwas exotischeren Tabs zu arbeiten!
Habe jetzt eine Test-App (nur ein Eclipse-Android-Projekt mit nichts anderem) veröffentlicht, um verschiedene Manifest-Einstellungen auszuprobieren. Allerdings kann ich meine App nicht mit Android Market auf meinem Tab bearbeiten. Es funktioniert auf dem Gerät direkt mit Debug.
Was ich getestet habe: Android 2.2 Android 2.3
Hinzugefügt:
%Vor%Versucht dies:
%Vor%Und dann alle Kombinationen von all dem. Ich habe keine Verwendungen-Erlaubnis in dieser Test-App.
Das Seltsame, was ich nicht verstehe, ist, dass einige Apps funktionieren und ich finde nicht, warum sie funktionieren und nicht andere. Ich habe verschiedene Geräte und verwende die Kompatibilitätsprüfung der Website und einige Apps, die sie nur funktionieren und manche nicht.
Was ich gerne wissen möchte, ist, WARUM eine App für dieses bestimmte Gerät nicht mit Android Market kompatibel ist. Gibt es eine Möglichkeit, diese Informationen zu erhalten? Ich denke, das sollte irgendwo zu finden sein, da es manchmal funktioniert und manchmal nicht.
Bitte helfen Sie mir, einen Weg zu finden, dies herauszufinden.
(Ich suche nicht nach einer Workaround / root auf dem Gerät, habe das schon auf einigen Geräten getan, damit die App funktioniert. Ich möchte wissen warum)
---- BEARBEITEN ---- Ich habe jetzt diesen Befehl für meine Test-App gefunden und ausgeführt: ./aapt dump badging testapp.apk
Ich sehe das dann: unterstützt-beliebige Dichte: 'wahr' Dichten: '120' '160' '240' Running screeninfo auf meinem Gerät sagen, es hat Dichte 200. Also ich denke, das ist das Problem. Jetzt ist die Frage, wie kann ich 200 zu dieser Liste hinzufügen. Ich möchte die Dichte auf dem Gerät nicht ändern.
Das ist mein Manifest:
%Vor%Wie Sie sehen können, ist dies ein Testfall und ich habe wirklich nichts darin. Und trotzdem funktioniert es nicht! Dies ist das Ergebnis von aapt dump badgin:
%Vor%Und ja, ich weiß, ich falsch geschrieben, schmutzige Demo; -).
Ich habe eine apk aus einer Anwendung extrahiert, die ich finden konnte und installieren konnte, und der einzige wirkliche Unterschied ist das Gebietsschema:
%Vor%Kann dies verhindern, dass die App heruntergeladen wird?
Und das ist die build.prop vom Gerät:
%Vor% Um 10-Zoll-Tablets (und wahrscheinlich größere) zu unterstützen, müssen Sie android:xlargeScreens="true"
zu Ihrem Manifest hinzufügen, im supports-screens
-Tag.
Eine weitere Diskussion zu diesem Thema: Anwendung erscheint nicht in Android Market für ein bestimmtes Gerät (Android Market Filters)
xlargeScreens
wurde in API Level 9 eingeführt. Sie müssen also möglicherweise die Android JAR-Datei anpassen, mit der Sie in Ihrer IDE kompilieren, aber Sie können minSDKVersion
immer noch unter 9 setzen.
Aus dem Android Market und Feature-Based Filtering Dokumentation:
Android Market filtert die Anwendungen, die für Benutzer sichtbar sind, also dass Benutzer nur die Anwendungen sehen und herunterladen können, die das sind kompatibel mit ihren Geräten. Eine der Möglichkeiten, die der Markt filtert Anwendungen ist durch Feature-Kompatibilität.
Um die Kompatibilität einer Anwendung mit einem gegebenen zu bestimmen Benutzer des Android Market-Dienstes vergleicht:
- Von der Anwendung benötigte Funktionen - eine Anwendung deklariert Features in
<uses-feature>
elements in ihrem Manifest mit ...- Auf dem Gerät verfügbare Funktionen in Hardware oder Software - ein Gerät meldet die von ihm unterstützten Funktionen als schreibgeschütztes System Eigenschaften.
Dies bedeutet, dass Ihre App nicht mit bestimmten Geräten kompatibel ist (gemäß Android Market), weil Sie explizit Funktionen angegeben haben, die auf diesem Gerät nicht verfügbar sind.
Wenn Sie beispielsweise android.hardware.telephony
verwenden, schließen Sie effektiv die meisten Tablets aus, die derzeit verfügbar sind, da es sich nicht um herkömmliche Telefone handelt. Daher wird Android Market angeben, dass Ihre App nicht mit diesen Geräten kompatibel ist.
Dieselbe Logik gilt für android.hardware.microphone
, android.hardware.camera
, etc.
Bearbeiten: @ManfredMoser hat korrekt darauf hingewiesen, dass Sie all diese booleschen Elemente auf false setzen und da Sie nicht Ihre gesamte AndroidManifest.xml
gepostet haben, schauen Sie sich um die impliziten Feature-Anforderungen und sehen, ob die von Ihnen angeforderten Berechtigungen übereinstimmen zu Hardware, die nicht auf Ihren Testgeräten verfügbar ist.