关于自定义广播接收不到的问题

关于自定义广播接收不到的问题

  • 8.0及以上版本,自定义广播接收不到
    • adb 发送广播

8.0及以上版本,自定义广播接收不到

在最近的项目中,需要使用广播监听PCO状态值的改变,发现发送的广播接收不到,查看log后,发现
Background execution not allowed: receiving Intent { act=com.hotpepper.datasaver.action.statechange flg=0x10 (has extras) } to com.android.settings/.datausage.PcoReceiver
在查阅资料后,发现是系统对隐式广播做了限制,目前查到两种方法

  1. 在不同包间接收广播
    Intent.addFlags(0x01000000);//加上这句话,可以解决在android8.0系统以上2个module之间发送广播接收不到的问题}
  2. 在同一个包内发送
intent.setComponent(new ComponentName("com.android.settings","com.android.settings.datausage.PcoReceiver"));

adb 发送广播

adb shell am broadcast -a “com.hotpepper.datasaver.action.statechange” --es prostate 1 -f 0x01000000
adb shell am broadcast 后面的参数有:

[-a ]
[-d ]
[-t ]
[-c [-c ] …]
[-e|–es …]
[–ez …]
[-e|–ei …]
[-n ]
[-f ] []

你可能感兴趣的:(Android)