2016-02-23 3 views
7

Gibt es eine Möglichkeit, Systeminstallationen vom Android-Gerät zu installieren. Ich versuchte mit getAvailableLocales()10 von Android Get Available locales, aber es funktioniert nicht für Geräte wie Asus, Carbon, Lava, Intex.Android So erhalten Sie die installierten Gebietsschemas des Systems

Zum Beispiel, wenn ich getAvailableLocales() in Nexus-Gerät aufrufen bin ich in der Lage Gegenden zu erhalten, die in Settings-> Language&Input -> Language

gibt es aber, wenn ich an einem Carbon-Gerät auch tun, statt Sprachen von Settings-> Language&Input -> Language bekommen, erhalte ich eine andere Liste.

Ich möchte nur die installierte Liste der Sprachen im Gerät, nicht jede Sprache von OS unterstützt.

+1

Können Sie erweitern, was Sie mit für diese Geräte „funktioniert nicht“? Gibt es einfach ein leeres Array zurück, ein Array mit _only_ 'Locale.US', stürzt es ab, gibt es keine Gebietsschemen zurück, von denen Sie erwarten, dass sie verfügbar sind? –

+0

Ich habe meine Frage aktualisiert, bitte überprüfen Sie –

+0

Okay, kann ich fragen, warum Sie die Locales brauchen? Sie sollten Objekte mit dem von Ihrem Benutzer ausgewählten Gebietsschema (dh dem Standardgebietsschema) anzeigen und mit dem Gebietsschema in das Netzwerk oder was auch immer schreiben.US', wie in den 'Locale'-Dokumenten dokumentiert (https://developer.android.com/reference/java/util/Locale.html). Ich erinnere mich an etwas, das Sie gerade erleben (locales! = Installierte Sprachen), obwohl ich mir nicht sicher bin, was damit passiert. –

Antwort

3

Wenn Sie System unterstützten Sprachen möchten, verwenden Sie

Locale.getAvailableLocales() 

Wenn Sie System unterstützt und Gerät aktiviert locales wollen

Resources.getSystem().getAssets().getLocales() 

Durch den ersten verwenden, können Sie nicht sicher sein, etwa wenn alle Sprachumgebungen unterstützt werden von diesem Gerät. Weil sie alle mit diesem Android-ROM gekommen sind.

Aber letzteres ist immer ein sicherer Schuss. Weil es nur gibt, was alle Locales (Schriftarten) für dieses bestimmte Gerät installiert. Diese Ländereinstellungen (Schriftarten) werden von diesem Gerätehersteller platziert.

erklärte ich mehr es in here

5

Die Locale.getAvailableLocales()-Methode ist der generische Basissatz von Gebietsschemas. Aus der Dokumentation:

meisten locale-sensitive Klassen bieten ihre eigene getAvailableLocales Methode, die über dieses Allzweck-Verfahren bevorzugt werden soll.

Schwerpunkt meiner.

Sie können die Ländereinstellungen für einen bestimmten Anwendungsfall abrufen, indem Sie die Methode getAvailableLocales() für die entsprechende Klasse abfragen. Im Einzelnen:

+0

Ich habe meine Frage aktualisiert, bitte überprüfen –