Ho incontrato lo stesso problema e non sembra esserci un modo standard per farlo. Tuttavia, la data e l'ora di un emulatore possono essere aggiornate utilizzando il comando date
della shell ADB, che può essere utilizzato insieme ai comandi standard per la visualizzazione di data e ora sul sistema operativo per aggiornare la data e l'ora dell'emulatore alla data e ora correnti.
Per impostare la data e l'ora della emulatore, è necessario eseguire il seguente comando nel vostro sistema operativo:
adb shell date -s YYYYmmdd.HHMMSS
dove YYYYMMDD è la data e HHMMSS è il tempo.
Linux/MacOS
Impostazione di data emulatore e il tempo per la data e l'ora corrente è relativamente semplice da una shell in stile UNIX, quindi il seguente comando funziona su Linux e MacOS:
adb shell date -s `date +"%Y%m%d.%H%M%S"`
di Windows
Su Windows (che sto usando), il modo più semplice per farlo è attraverso Windows PowerShell:
adb shell date -s $(get-date -format yyyyMMdd.HHmmss)
In Prompt dei comandi, è un po 'più complicato perché non c'è modo di specificare un formato personalizzato per visualizzare la data e l'ora. Il modo migliore che ho trovato per ottenerlo in formato indipendente dalla locale è usando il comando wmic os get LocalDateTime
(riga 2). Il formato data-ora può essere analizzato per adattarsi al formato richiesto dalla shell ADB: i simboli :~
possono essere utilizzati per stampare una sottostringa di un contenuto di variabile di ambiente, con il formato %var:~<start-index>,<number-of-chars>%
. Abbiamo anche bisogno di ignorare tutto tranne la linea 2, in modo che il comando completo che è necessario eseguire è la seguente:
for /f "skip=1 delims=" %A in ('wmic os get localDateTime') do @for /f "delims=" %B in ("%A") do @cmd /v /c "set wmicdate=%B & adb shell date -s !wmicdate:~0,8!.!wmicdate:~8,6!"
Per i curiosi: questa prima salva il data-ora nella variabile %wmicdate%
e poi passa a ADB analizzandolo appropriatamente. Gli !
vengono utilizzati al posto di %
a read the variable on-the-fly. Tutto questo viene eseguito in un processo figlio cmd
avviato con l'opzione /v
che abilita questa lettura variabile in tempo reale.
Per chi è alla ricerca di una soluzione temporanea e disordinato estremamente veloce. Esci dall'istanza dell'emulatore e riavvialo con l'ora e il fuso orario automatici disattivati. – JosephMCasey