android - 如何按包名自动安装 Play 商店应用程序?

标签 android google-play adb

是否可以通过将包名称传递给 adb shell 中的某个 Activity 或以其他方式(有或没有 root)来批量安装常规 Play 商店应用程序?

不是要安装 APK 文件,而是使用 Play 商店功能静默下载和安装应用程序(或通过确认)给定其软件包,例如 com.android .chrome.

例如,当您在 https://play.google.com 的桌面版上点击某个应用的“安装”按钮时该应用程序将静默下载并安装到您在桌面浏览器中使用的 gmail 帐户的选定设备上。我想这是由谷歌云消息平台(FCM/GCM)触发的 Intent 。是否可以通过使用包名称调用相应的 gapps Activity 来直接在设备上触发相同的功能?

最佳答案

这只是一种半自动化方法,但当我尝试全新安装之前在新手机上使用的所有应用时,它确实为我节省了很多时间。

这是我的做法:

  1. 将软件包名称列表保存在一个文件中,例如 /sdcard/pkgs

  2. 通过键入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

  3. 键入以下命令以交互方式安装文件 /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/

相关文章:

android - Cordova 无法构建项目

android - 大通知图标的大小是多少?

android - 如何将付费应用程序用户帐户链接到系统?

android - 在没有 Android Studio 的情况下构建项目

Android九补丁content-border不兑现

android - Google Play 测试版中的 LGE Nexus 5 不断崩溃并出现 NoClassDefFoundError - 但它是哪个类?

android - 我如何为 Google Play 提交签署我的 Android apk

android - linux mint 上 USB 设备的权限 ATTR{idVendor} 使用表 mobii protab2 XXL

Android - 通过 wifi 使用 adb 连接到设备

android - 协议(protocol)错误(无法读取状态): Undefined error: 0