在命令行可用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