Shi*_*aze 22 android android-emulator
如果我在仿真设备上进行全新启动,它会从主机操作系统获得正确的当前时间; 但是,如果我从快照重新加载设备,它将从创建快照的那一刻起获取时间/日期(例如,当我关闭模拟器时).时间/日期在任何时间后都不会重新同步.我发现的唯一方法是从快照恢复后手动更新时间.
Android虚拟设备具有默认属性:
Target = Android 4.0.3 - API等级15
CPU/ABI = ARM(armeabi-v7a)
SD卡= N/A.
Snapshot =已启用
摘要LCD密度= 240
最大VM应用程序堆大小= 48
设备RAM大小= 512
我在OS X Snow Leopard和Windows 7上尝试过模拟器,两者都表现出同样的问题.有没有办法让模拟器在从快照恢复后自动同步时间?
Art*_*yom 32
我一直遇到同样的问题,似乎没有一种标准的方法来做到这一点.但是,可以使用dateADB shell 的命令更新仿真器的日期和时间,该命令可与标准命令结合使用,以在操作系统上显示日期和时间,以将仿真器日期和时间更新为当前日期和时间.
要设置模拟器的日期和时间,需要在操作系统中执行以下命令:
adb shell date -s YYYYmmdd.HHMMSS
其中YYYYmmdd是日期而HHMMSS是时间.
从UNIX风格的shell中将模拟器日期和时间设置为当前日期和时间相对简单,因此以下命令适用于Linux:
adb shell date -s `date +"%Y%m%d.%H%M%S"`
adb -e shell su root date `date +"%m%d%H%M%y"`
在Windows(我使用的)上,最简单的方法是通过Windows PowerShell:
adb shell date -s $(get-date -format yyyyMMdd.HHmmss)
在命令提示符中,它有点棘手,因为无法指定自定义格式来显示日期和时间.我发现以独立于语言环境的格式获取它的最好方法是使用命令wmic os get LocalDateTime(第2行).可以解析其日期时间格式以适应ADB shell所需的格式:符号:~可用于使用格式打印环境变量内容的子字符串%var:~<start-index>,<number-of-chars>%.我们还需要忽略除第2行之外的所有内容,因此您需要运行的完整命令如下:
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!"
对于好奇:这首先将日期时间保存到%wmicdate%变量中,然后通过适当地解析它将其传递给ADB.将!用于替代%来读取即时的变量.这一切都在cmd使用/v选项启动的子进程中完成,该选项启用此即时变量读取.
编辑:修复了macOS命令(感谢@ user836003).
在运行版本 6 API 23 的较新 Android 模拟器上,以下 powershell 命令对我有用。
Windows Powershell
adb shell date $(get-date -format MMddHHmmyyyy.ss)
在 Android 模拟器版本 7 API 24上:
adb shell su root date $(get-date -format MMddHHmmyyyy.ss)
我之前已经搜索过很多次这个问题的解决方案,当我看到你的问题时,我再次搜索,但除了你和我之外,我找不到其他人甚至抱怨这个问题,也许其他人不会创建时间至关重要的应用程序,或者他们在真实设备上进行测试。
结论:不,没有解决办法,您必须手动设置它或不使用快照。
| 归档时间: | 
 | 
| 查看次数: | 5164 次 | 
| 最近记录: |