我正在尝试使用 adb 命令行在 Google Chrome 中打开 URL。使用以下命令设置“--no-first-run”-
adb shell 'echo "chrome --no-first-run" > /data/local/tmp/chrome-command-line'
已从以下网站获取命令行开关 - http://peter.sh/experiments/chromium-command-line-switches/
然后我执行以下命令,
adb -s TA99300UFC shell am set-debug-app com.android.chrome
adb -s TA99300UFC shell am start -n com.android.chrome/com.google.android.apps.chrome.Main -d 'http://wikipedia.org'
“欢迎页面”仍然出现。
如何跳过此步骤并直接进入命令中传递的网站 URL?
adb shell 'echo "chrome --disable-fre --no-default-browser-check --no-first-run" > /data/local/tmp/chrome-command-line'
此命令禁用 chrome 的欢迎屏幕
在
--persistent
命令中添加 set-debug-app
标志后,问题得到解决。
因此命令更改为
adb -s TA99300UFC shell am set-debug-app --persistent com.android.chrome
。之后 chrome://version
在 chrome --display-fre
部分下显示 Command line
。
当我试图以某种方式跳过欢迎页面时,我偶然发现了这个问题。我终于通过使用以下代码成功做到了这一点:
String context = driver.getContext(); // = "CHROMIUM"
driver.context("NATIVE_APP");
driver.findElement(By.id("com.android.chrome:id/terms_accept")).click();
driver.findElement(By.id("com.android.chrome:id/negative_button")).click();
driver.context(context);
您必须先切换到上下文“NATIVE_APP”,然后才能单击 Chrome 中不属于网页而是属于 Chrome 本身的任何按钮。之后你必须通过调用 driver.context(context) 再次切换回来。
希望我解决了某人的问题,他们也通过谷歌偶然发现了这个页面。
set-debug-app
解决方案相对丑陋,它要求系统断点启动应用程序,等待调试器附加。用它来禁用应用程序并不理想。
我发现对于我的用例,禁用该应用程序效果很好:
adb shell pm disable-user --user 0 org.chromium.chrome
这将为用户
0
(设备的主要用户)禁用 chrome。您可以使用 adb shell pm list users
列出用户。
然后您可以使用以下方法重新启用应用程序:
adb shell pm enable org.chromium.chrome
我还遇到了有时重新启动后不会考虑更改的问题。似乎
adb reboot
在所有情况下都不会刷新对磁盘的所有写入,我发现要求使用以下命令进行干净重启:
adb shell am start -a android.intent.action.REBOOT
在所有情况下都有效。
另请注意,禁用应用程序的方式在 Android 版本中已更改多次,我列出了到目前为止的最新版本,在这里找到更详尽的列表:https://android.stackexchange.com/a/208271 /141551