2011-12-13 27 views
9

Piszę o niektórych systemach Android do automatyzacji testów naszych aplikacji, które są zlokalizowane w 18 językach.Programowa zmiana języka na urządzeniu z systemem Android

Potrzebuję możliwości programowego przełączania języka na urządzeniu - nie mam zamiaru przełączać języka samej aplikacji - mam na myśli zmianę rzeczywistego języka urządzenia w ustawieniach Androida, w ten sposób zmienia się również nasza aplikacja.

Czy mogę to zrobić za pomocą MonkeyRunner, Android Debug Bridge lub w inny sposób? Idealnie chciałbym znaleźć sposób, który działa zarówno na emulator Androida, jak i na fizyczne urządzenie.

Dzięki.

Odpowiedz

4

końcu zorientowali się, można to zrobić za pośrednictwem Android Debug Bridge która Właśnie zainstalowany na moim komputerze testowym i dodaje do zmiennej PATH okna.

Na przykład, polecenie, aby przełączyć urządzenie do języka niemieckiego będzie:

adb shell "su -c 'setprop persist.sys.language de; setprop persist.sys.country de; stop; sleep 5; start' 

Musisz zakorzenione urządzenie, aby to zadziałało.

1

można zmienić lokalny tak:

Resources res = context.getResources(); 
    // Change locale settings in the app. 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    android.content.res.Configuration conf = res.getConfiguration(); 
    conf.locale = new Locale(language_code.toLowerCase()); 
    res.updateConfiguration(conf, dm); 
+3

Czy to ustawienie znajduje się w kodzie aplikacji mobilnych? Jeśli tak, nie sądzę, żebyś poprawnie przeczytał moje pytanie - muszę zmienić język urządzenia, z aplikacji automatyzacji niezależnej od kodu aplikacji mobilnych. –

0

Można napisać skrypt, który wysyła audycję do aplikacji pomocniczej, takiej jak adb send broadcast, a ta aplikacja zmienia konfigurację wewnątrz urządzenia, np. Język urządzenia, w którym można użyć tego kodu @iSun.

Powiązane problemy