2016-12-27 6 views
3

Ich benutze Android Things Developer Vorschau auf Raspberry Pi 3 Model B. Gibt es eine Möglichkeit, das richtige Datum/Zeit/Zeitzone einzustellen?Wie ändere ich das Datum auf dem Android Things-Gerät?

+0

Programmatisch? Welche Sprache? – greenapps

+0

Programmatisch oder über ADB, Java oder Kotlin. –

+0

Java == programmgesteuert! Und warum sollten die normalen Funktionen dazu nicht funktionieren? Was ist das eigentliche Problem? – greenapps

Antwort

3

Der einfachste Weg, dies zu tun ist wahrscheinlich die date Shell-Befehl über ADB. Es erfordert root, aber alle Vorschaubilder sollten Root-Zugriff erlauben. Hier ist ein Beispiel, das das Datum überprüft, setzt er, und überprüft dann, dass der Datumswechsel fest:

$ adb root 
    restarting adbd as root  
$ adb shell date 
    Sat Jan 1 00:02:40 GMT 2000 
$ adb shell date 1227120016 
    Tue Dec 27 12:00:00 GMT 2016 
$ adb shell date 
    Tue Dec 27 12:00:02 GMT 2016 

Sie können das Format des Datums Befehl bestimmen nimmt über adb shell date -h. Beachten Sie, dass diese Änderung möglicherweise nicht durch einen Aus- und Wiedereinschaltvorgang bestehen bleibt, da die meisten Entwicklungskits keine batteriegepufferte RTC haben.

+0

Funktioniert perfekt, danke! –

3

Wenn Ihre App ein System-App ist, dass Sie es wie die unten tun können:

In Ihrem AndroidManifest:

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

in Ihrer Aktivität:

Calendar c = Calendar.getInstance(); 
    c.set(2009, 9, 9, 12, 0, 0); 
    AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); 
    am.setTime(c.getTimeInMillis()); 

Dies das System so einstellen würde Zeit bis 2009/September/9, see here for API docs

Jedoch um die SET_TIME Erlaubnis zu benutzen, müssen Sie ein system app sein.

Leider, wenn Sie die normale ADB-Installation von Android Studio verwenden, wird Ihre App nicht als Systemanwendung installiert. Sie müssten dies manuell mit anderen ADB-Befehlen tun.

Dies ist möglich, wie Sie sollten Root-Zugriff auf alle Entwickler-Gerät haben, gibt es einen Spaziergang durch hier erklären, wie Sie Ihre apk als System-App zu schieben, und dann können Sie die Zeit wie oben festgelegt!

https://android.stackexchange.com/questions/76976/how-to-install-app-as-system-app

oder

https://android.stackexchange.com/questions/27/how-do-i-properly-install-a-system-app-given-its-apk

Wenn Sie keine Erlaubnis haben (sind kein System app) Sie einen Fehler wie dies in Ihrem LogCat sehen:

Caused by: java.lang.SecurityException: setTime: Neither user 10026 nor current process has android.permission.SET_TIME. 
at android.os.Parcel.readException(Parcel.java:1683) 
at android.os.Parcel.readException(Parcel.java:1636) 
at android.app.IAlarmManager$Stub$Proxy.setTime(IAlarmManager.java:224) 
at android.app.AlarmManager.setTime(AlarmManager.java:937) 
at com.blundell.MainActivity.onCreate(MainActivity.java:19) 
Verwandte Themen