我如何使用Android的ADB工具发送一个意图?
当前回答
我们也可以通过知道应用程序类型并为其提供数据来启动应用程序:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
此命令显示可用的*视频播放器来播放示例。3 gp文件。
其他回答
只使用monkey工具就可以运行指定包名的应用程序,如下所示:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
该命令用于使用monkey工具运行应用程序,该工具为应用程序生成随机输入。该命令的最后一部分是一个整数,它指定为应用程序生成的随机输入的数量。在本例中,数字为1,实际上用于启动应用程序(单击图标)。
开发板的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 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标志。
目前最短的命令如下:
adb shell monkey -p your.app.package.name 1
这将启动启动程序中包的默认活动。
感谢Androiderson的建议。
当您尝试打开Flutter应用程序时,您可以使用以下命令:
adb shell am start -n com.package.name/io.flutter.embedding.android.FlutterActivity
用包名替换com.package.name。你可以在app/build中找到你的包。gradle at applicationId。
推荐文章
- 如何隐藏动作栏之前的活动被创建,然后再显示它?
- 是否有一种方法以编程方式滚动滚动视图到特定的编辑文本?
- 在Android中将字符串转换为Uri
- 如何在NestedScrollView内使用RecyclerView ?
- 移动到另一个EditText时,软键盘下一步点击Android
- Android应用中的GridView VS GridLayout
- Activity和FragmentActivity的区别
- 右对齐文本在android TextView
- 权限拒绝:start前台需要android.permission.FOREGROUND_SERVICE
- 如何更改android操作栏的标题和图标
- Android Split字符串
- 让一个链接在安卓浏览器启动我的应用程序?
- 如何在Android工作室的外部库中添加一个jar ?
- GridLayout(不是GridView)如何均匀地拉伸所有子元素
- 如何让一个片段删除自己,即它的等效完成()?