使用 adb 命令向 Android 发送广播

安装adb
  1. 安装homebrew

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

  1. 安装adb

brew cask install android-platform-tools

  1. 检测安装是否成功

adb devices

adb 命令

  1. 进入adb 使用命令: adb shell

  2. 发送广播
    am broadcast -a action.com.custom.broadcast.quit --es package "com.test.broadcast"

am broadcast 后面为key 加参数

  1. 参数
    [-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的名称

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值