我如何使用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
打开文件~/。bash_profile,并将这些Bash函数添加到文件的末尾
function androidinstall(){
adb install -r ./bin/$1.apk
}
function androidrun(){
ant clean debug
adb shell am start -n $1/$1.$2
}
然后打开Android项目文件夹:
androidinstall app-debug && androidrun com.example.app MainActivity
Use:
adb shell am start -n '<appPackageName>/.<appActitivityName>
例子:
adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'
您可以使用APK-INFO应用程序来了解与每个应用程序包相关的应用程序活动列表。
你可以通过下面的命令找到你的应用程序包名称:
adb shell pm list packages
上面的命令返回所有应用程序的包列表。例子:
org.linphone.debug
.
.
com.android.email
现在我想通过使用下面的命令启动应用程序linphone,这对我来说是有效的:
adb shell am start org.linphone.debug
当您尝试打开Flutter应用程序时,您可以使用以下命令:
adb shell am start -n com.package.name/io.flutter.embedding.android.FlutterActivity
用包名替换com.package.name。你可以在app/build中找到你的包。gradle at applicationId。
推荐文章
- 这是在Android中获取用户位置的好方法
- Android从左到右幻灯片动画
- 如何检索视图的维度?
- 如何改变菜单项的文本颜色在安卓?
- Android选择器和文本颜色
- 视图绑定-我如何获得包含布局的绑定?
- 在Android Studio中改变矢量资产的填充颜色
- 在构建中编写注释的语法是什么?gradle文件?
- 如何以编程方式添加按钮色调
- 用Android Studio进行调试永远停留在“等待调试器”状态
- Openssl不被视为内部或外部命令
- 无法执行dex:在Eclipse中超过GC开销限制
- 如何以编程方式将视图添加到视图
- 单击url会打开默认浏览器
- 使用Retrofit刷新OAuth令牌,而不修改所有调用