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


当前回答

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

或者你可以直接用这个:

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

你也可以通过intent-filters指定要过滤的动作:

am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName 

其他回答

Use:

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

获取<appPackageName>

Adb shell PM列表包

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

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

开发板的pct-syskeys 0

没有按键/显示的开发板需要这个参数:

adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1

如果没有它,应用程序将无法打开,你将得到一个错误消息,如:

SYS_KEYS has no physical keys but with factor 2.0%

它在HiKey960和Android O AOSP上进行了测试。

教训:这个GitHub问题

在没有物理键的Android系统中,如何使用monkey命令?

目前最短的命令如下:

adb shell monkey -p your.app.package.name 1

这将启动启动程序中包的默认活动。

感谢Androiderson的建议。

只使用monkey工具就可以运行指定包名的应用程序,如下所示:

adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1

该命令用于使用monkey工具运行应用程序,该工具为应用程序生成随机输入。该命令的最后一部分是一个整数,它指定为应用程序生成的随机输入的数量。在本例中,数字为1,实际上用于启动应用程序(单击图标)。

还有,我想再提一件事。

当你从adb shell am启动一个应用程序时,它会自动添加FLAG_ACTIVITY_NEW_TASK标志,使行为发生变化。请参阅代码。

例如,如果你从adb shell am启动一个Play Store活动,按下“后退”按钮(硬件后退按钮)不会带你回到你的应用程序。相反,它会带你到之前的Play Store活动,如果有一些(如果没有Play Store任务,那么它会带你回到你的应用程序)。FLAG_ACTIVITY_NEW_TASK文档说:

如果您正在启动的活动的任务已经在运行,那么新的活动将不会启动;相反,当前任务将被带到屏幕的前面,并显示它上次处于的状态

这让我花了几个小时来找出哪里出了问题。

因此,请记住adb shell am添加FLAG_ACTIVITY_NEW_TASK标志。