安装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();
}
}
②在配置文件注册该广播
<receiver
android:name=".ScreeOnBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.ACTION_SCREEN_ON"/>
</intent-filter>
</receiver>
③在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();
}
}
②在配置文件注册该广播
<receiver
android:name=".MyBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.example.test.MY_BROADCAST"/>
</intent-filter>
</receiver>
③在adb中输入命令
adb shell am broadcast -a com.example.test.MY_BROADCAST
在程序中可收到发送的该广播
注:“mybroadcast”为配置文件中注册的action的名称