我如何使用Android的ADB工具发送一个意图?


当前回答

adb shell am start -n com.app.package.name/com.java.package.name.ActivityName

例子

adb shell am start -n com.google.android.googlequicksearchbox/com.google.android.search.core.google.GoogleSearch

如果Java包是一样的,那么可以缩短为:

adb shell am start -n com.example.package/.subpackage.ActivityName

其他回答

Use:

adb shell am start -n '< appppackagename >/<appActitivityName>'

获取<appPackageName>

Adb shell PM列表包

获取<appActitivityName>午餐应用程序并运行

adb shell dump窗口| grep -E 'mCurrentFocus'

我们也可以通过知道应用程序类型并为其提供数据来启动应用程序:

adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW

此命令显示可用的*视频播放器来播放示例。3 gp文件。

Use:

adb shell am start -n '<appPackageName>/.<appActitivityName>

例子:

adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'

您可以使用APK-INFO应用程序来了解与每个应用程序包相关的应用程序活动列表。

试试这个,打开一个Android照片应用程序,并以特定的图像文件作为参数打开。

adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png

它将在最新版本的Android上运行。没有弹出窗口来选择一个应用程序打开,因为你正在给特定的应用程序,你想打开你的图像。

Linux和Mac用户也可以创建一个脚本来运行APK文件,如下所示:

用这三行代码创建一个名为"adb-run.sh"的文件:

pkg=$(aapt dump badging $1|awk -F" " '/package/ {print $2}'|awk -F"'" '/name=/ {print $2}')
act=$(aapt dump badging $1|awk -F" " '/launchable-activity/ {print $2}'|awk -F"'" '/name=/ {print $2}')
adb shell am start -n $pkg/$act

然后“chmod +x adb-run.sh”使其可执行。

现在你可以简单地:

adb-run.sh myapp.apk

这样做的好处是您不需要知道包名或可启动活动名。类似地,你可以创建"adb-uninstall.sh myapp.apk"

注意:这需要你有Android资产打包工具(aapt)在你的路径。你可以在SDK的新构建工具文件夹中找到它。