在命令行可用adb shell am broadcast -a [action] 手动发送广播java
首先看一下各部分的做用
adb shell , 进入到设备的shell模式;
am , 是activity manager的缩写,它能够启动activity,启动service,发送广播等android
一样的道理 pm ,就是package manager的缩写.shell
启动一个activitymarkdown
adb shell am start [option] [intent] 例如: adb shell am start -a android.settings.ACTION_NAME adb shell am start -n com.android.settings/.Activity_class_name 参数含义: -a, Action ; -n, Component 例如:打开系统设置 adb shell am start -n com.android.settings/.Activity_class_name 例如:打开系统设置-输入法设置 adb shell am start -a android.settings.INPUT_METHOD_SETTINGS 例如:经过包名+类名开启系统照相机 adb shell am start -n com.android.camera/.Camera 例如:打开拨号界面,直接拨打10086 adb shell am start -a android.intent.action.CALL -d tel:10086 参数含义: -d, DATA_URI
启动一个serviceapp
adb shell am startservice [option] [intent] 例如: adb shell am startservice -a android.settings.ACTION_NAME adb shell am startservice -n com.android.settings/.Service_class_name 反之,中止service就是把参数换成stopservice
发送一个broadcastpost
adb shell am broadcast [option] [intent] 例如:发送一个恢复出厂设置的广播 adb shell am broadcast -a android.intent.action.MASTER_CLEAR 例如:模拟手机低电环境 adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei "level" 3 --ei "scale" 100 参数含义: --ei, [EXTRA_KEY, EXTRA_INT_VALUE] int类型键值对 但有时候会出现 java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BATTERY_CHANGED from pid=9747, uid=2000 at android.os.Parcel.readException(Parcel.java:1683) at android.os.Parcel.readException(Parcel.java:1636) at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3609) at com.android.commands.am.Am.sendBroadcast(Am.java:772) at com.android.commands.am.Am.onRun(Am.java:404) at com.android.internal.os.BaseCommand.run(BaseCommand.java:51) at com.android.commands.am.Am.main(Am.java:121) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:310) 若是出现上面的错误, 就是没有执行权限,执行adb root, adb remount获取设备权限
强制关闭一个应用程序ui
adb shell am force-stop [PACKAGE] 例如:经过指定包名强制关闭设置 adb shell am force-stop com.android.settings
列举出全部包含[intent]的包名atom
adb shell pm list packages [option] [intent] 例如:列举包名含有com.android的package adb shell pm list packages com.android
上面列举的这些是用的相对比较多一些的命令, 想了解更多adb shell am/pm 的命令或者各参数含义,能够在命令行输入
adb shell am 或 adb shell pm查看..net