PC 端通过 USB 连接手机,检测是否安装某个应用程序
最近在使用腾讯手机管家 for Android 的时候发现,通过 USB 连接品 PC 和手机,启动
PC 端腾讯手机管家,发现当手机端未安装腾讯手机精灵时会自动安装,如果已安装,会自
动连接上。
研究了一下,发现原理其实很简单,只需要一行命令即可搞定,即依靠强大的 adb 命
令之 adb shell am start 命令
[adb shell am start]
-n <package_name>/.<activity_class_name>
作用:启动一个 activity
例如:
adb shell am start -n
com.qq.AppService/com.qq.AppService.MainView
通过启动腾讯手机精灵的主 activity 来检测手机端是否安装该应用,如果已
经安装,则 adb shell 命令返回的结果:
Starting: Intent { cmp=com.qq.AppService/.MainView }
或者
Starting: Intent { cmp=com.qq.AppService/.MainView }
Warning: Activity not started, its current task has been brought to
the front
如果未安装,则返回的结果是:
Starting: Intent { cmp=com.qq.AppService/.MainView }
Error type 3
Error: Activity class
{com.qq.AppService/com.qq.AppService.MainView} does not exist.
通过解析执行 adb 命令之后返回的结果即可知道是否安装该应用。
/**
*
* @param cmdString:adb shell 命令
* //adb.exe所在的路径,PC端需要有AdbWinApi.dll
AdbWinUsbApi.dll adb.exe
* //PC端所有对adb shell命令的操作都需要上述三个文件
* String adbPath = "E://wts//adb ";
*
* //检查腾讯手机精灵是否安装的命令
* //com.qq.AppService/com.qq.AppService.MainView 组件
名,com.qq.AppService包名,MainView主activity
String cmdString = adbPath + "shell am start -n
com.qq.AppService/com.qq.AppService.MainView";
*