Android 和PC的adb 通讯

2021-01-18  本文已影响0人  riverSod

Android 8.0及以后,不能监听隐式的系统广播,就动态的注册广播, 或者

如果一定要Manifest静态注册,那么当发送广播的时候,指定广播接收者的包名,即发送显式广播

第一步,写MyReceiver

...

public class MyReceiver extends BroadcastReceiver {
private static final String TAG = "lkj";

@Override
public void onReceive(Context context, Intent intent) {

    String h = "..";

     h = intent.getStringExtra("package");

    Log.i(TAG, "onReceive: 接受到广播  " +h);
    Toast.makeText(context,"接受到广播   " + h, Toast.LENGTH_SHORT).show();

}

}
...

第二步,注册广播接受者

...

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initReceiver();
}

private void initReceiver() {
    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction("com.xiaoqiang.try.something.receiver");
    MyReceiver receiver = new MyReceiver();
    registerReceiver(receiver, intentFilter);
}

}
...

第三步adb 命令发送广播

image.png

效果:

image.png
上一篇下一篇

猜你喜欢

热点阅读