我如何使用Android的ADB工具发送一个意图?
当前回答
还有,我想再提一件事。
当你从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
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
还有,我想再提一件事。
当你从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 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
第一步:首先获取设备中安装的所有应用程序的软件包名称,使用:
adb shell pm list packages
步骤2:您将获得所有包的名称。复制您想要使用ADB启动的文件。
步骤3:在下面的命令中添加所需的包名称。
adb shell monkey -p 'your package name' -v 500
例如,
adb shell monkey -p com.estrongs.android.pop -v 500
启动Es explorer。
我们也可以通过知道应用程序类型并为其提供数据来启动应用程序:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
此命令显示可用的*视频播放器来播放示例。3 gp文件。
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件