我正在测试案例部分,我想检查我是否从服务器获取了正确的时间,即使更改了Android设备中的时间。为此,我使用adb shell命令覆盖日期和时间,但这并没有反映出来。
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
int date1 = calendar.get(Calendar.DATE);
getInstrumentation().getUiAutomation().executeShellCommand("date -s 07171010.00");
getInstrumentation().getUiAutomation().executeShellCommand("am broadcast -a android.intent.action.TIME_SET");
calendar.setTimeInMillis(System.currentTimeMillis());
int date2 = calendar.get(Calendar.DATE);
答案 0 :(得分:0)
根据我的经验,您必须在调用任何ADB命令后添加一个睡眠时间才能生效。
例如,在此处查看评论:https://stackoverflow.com/a/50859369/10472007
或这里https://stackoverflow.com/a/37737047/10472007
最后一个引号:
该命令将不会立即在设备上显示,因为它不会触发任何时间更改广播,但会在一分钟内可见。
检查一下!
否则,请根据Alex P给出的页面中的建议,根据您的设备/操作系统版本检查命令语法。