是否可以通过将包名称传递给 adb
shell 中的某个 Activity 或以其他方式(有或没有 root)来批量安装常规 Play 商店应用程序?
我不是要安装 APK 文件,而是使用 Play 商店功能静默下载和安装应用程序(或通过确认)给定其软件包,例如 com.android .chrome
.
例如,当您在 https://play.google.com 的桌面版上点击某个应用的“安装”按钮时该应用程序将静默下载并安装到您在桌面浏览器中使用的 gmail 帐户的选定设备上。我想这是由谷歌云消息平台(FCM/GCM)触发的 Intent 。是否可以通过使用包名称调用相应的 gapps Activity 来直接在设备上触发相同的功能?
最佳答案
这只是一种半自动化方法,但当我尝试全新安装之前在新手机上使用的所有应用时,它确实为我节省了很多时间。
这是我的做法:
将软件包名称列表保存在一个文件中,例如
/sdcard/pkgs
。通过键入
adb shell
进入 shell 后,使用以下命令定义以下 shell 函数:g() { am start -a android.intent.action.VIEW -d "market://details?id=$1" -p com.android.vending; }
此 shell 函数将打开给定包的 Google Play 信息页面。例如,要打开 Chrome 的 Google Play 信息页面,您可以使用命令
g com.android.chrome
。键入以下命令以交互方式安装文件
/sdcard/pkgs
中的所有应用程序:for p in `cat /sdcard/pkgs`; do echo $p; g $p; read; done
此命令将一次打开
/sdcard/pkgs
中所有包的 Google Play 信息页面,除非您按回车键,否则不会继续到下一个应用程序。此时,您所要做的就是点击手机上的安装按钮,然后按电脑上的回车键。只要您看到“待定”状态,您就可以继续下一个应用程序。您无需等到安装完成。
当然,第 3 步可以通过模拟点击事件自动执行,例如,使用 input tap x y
命令。对我来说,这是不值得的,因为我不想处理所有异常情况(例如,在 Google Play 上不再提供某个应用程序或突然接到电话等情况下)。
关于android - 如何按包名自动安装 Play 商店应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42125096/