adb shell am broadcast 手動發送廣播及adb shell am/pm其餘命令

 

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/zi_zhe/article/details/72229201

在命令行可用adb shell am broadcast -a [action] 手動發送廣播java

adb shell am [command] 的用法:

首先看一下各部分的做用
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

啓動一個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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

發送一個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獲取設備權限
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

強制關閉一個應用程序ui

adb shell am force-stop [PACKAGE]

例如:經過指定包名強制關閉設置
adb shell am force-stop com.android.settings
  • 1
  • 2
  • 3
  • 4

列舉出全部包含[intent]的包名atom

adb shell pm list packages [option] [intent]
例如:列舉包名含有com.android的package
adb shell pm list packages com.android
  • 1
  • 2
  • 3

上面列舉的這些是用的相對比較多一些的命令, 想了解更多adb shell am/pm 的命令或者各參數含義,能夠在命令行輸入
adb shell am 或 adb shell pm查看..net

相關文章
相關標籤/搜索