使用 adb 命令向 Android(安卓)发送广播
安装adb
- 安装homebrew
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
- 安装adb
brew cask install android-platform-tools
- 检测安装是否成功
adb devices
adb 命令
-
进入adb 使用命令:
adb shell
-
发送广播
am broadcast -a action.com.custom.broadcast.quit --es package "com.test.broadcast"
am broadcast 后面为key 加参数
- 参数
[-a < ACTION>]
[-d < DATA_URI>]
[-t < MIME_TYPE>]
[-c < CATEGORY> [-c < CATEGORY>] …]
[-e|–es < EXTRA_KEY> < EXTRA_STRING_VALUE> …]
[–ez < EXTRA_KEY> < EXTRA_BOOLEAN_VALUE> …]
[-e|–ei < EXTRA_KEY> < EXTRA_INT_VALUE> …]
[-n < COMPONENT>]
[-f < FLAGS>] [< URI>]
-a 后面为 action
–es 为 EXTRA_KEY
转换为代码为:
Intent intent = new Intent(“action.com.custom.broadcast.quit”);
intent.putExtra(“package”,“com.test.broadcast”);
adb shell am broadcast -a com.android.test --es test_string “this is test string” --ei test_int 100 --ez test_boolean true
前面为key,后面为alue,分别为String类型,int类型,boolean类型
其他参数类似
Demo
1、接收adb发送的系统的系统广播----屏幕变亮
①在程序中写一个广播接收者接收该广播
public class ScreeOnBroadcastReceiver extends BroadcastReceiver { private static final String TAG = "ScreeBroadcastReceiver"; @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, "接收到了系统屏幕变亮的广播数据"); Toast.makeText(context, "接收到了系统屏幕变亮的广播数据", Toast.LENGTH_SHORT).show(); }}
②在配置文件注册该广播
③在adb中输入命令
adb shell am broadcast -a android.intent.action.ACTION_SCREEN_ON
在程序中可收到发送的该广播
2. 接收adb发送的自定义广播
①定义一个广播接收器
public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "receive in MyBroadcastReceiver", Toast.LENGTH_SHORT).show(); }}
②在配置文件注册该广播
③在adb中输入命令
adb shell am broadcast -a com.example.test.MY_BROADCAST
在程序中可收到发送的该广播
注:“mybroadcast”为配置文件中注册的action的名称
更多相关文章
- android dpi dp 和px之间的关系
- Android(安卓)ant 命令行手动编译打包详解
- android pm命令
- Android实现滑动屏幕切换图片
- Android的权限声明
- Android学习笔记Android必备开发工具之一命令行创建Git库
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析(4)