最近在做静默安装的时候发现静态广播一直收不到,原来8.0和6.0不一样,就写了一个例子测试一下,代码如下:
1、在AndroidManifest.xml中注册广播
<receiver
android:name=".MyBroadCastReciver"
android:enabled="true"
android:exported="true" >
<!-- 这个action的配置如果是低于4级是接收不到广播的,这里是个坑 com.x.x.x 之前配置3级,就怎么都接收不到广播-->
<intent-filter>
<action android:name="com.zqc.testdemo.MyBroadCastReciver"></action>
</intent-filter>
</receiver>
2、代码中使用
public class MainActivity extends AppCompatActivity {
private String datas="你好,我是调用者,mainApp.会返回给你数据,请查收!!!";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.button) ;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent("com.zqc.testdemo.MyBroadCastReciver");
//ComponentName("当前类的包名","包名.这条广播的接收器的类名")
intent.setComponent(new ComponentName("com.zqc.testdemo",
"com.zqc.testdemo.MyBroadCastReciver"));
intent.putExtra("mainApp_send_data",datas);
//发送标准广播
sendBroadcast(intent);
}
});
}
}
public class MyBroadCastReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("mainApp_send_data");
Log.e("MyBroadCastReciver"," -- 接收到的消息 -- = "+message);
}
}
3、打印如下
2019-12-17 11:57:36.816 29603-29603/com.zqc.testdemo E/MyBroadCastReciver: -- 接收到的消息 -- = 你好,我是调用者,mainApp.会返回给你数据,请查收!!!
2019-12-17 11:57:36.866 29603-29603/com.zqc.testdemo E/MyBroadCastReciver: -- 接收到的消息 -- = 你好,我是调用者,mainApp.会返回给你数据,请查收!!!
2019-12-17 11:57:36.951 29603-29603/com.zqc.testdemo E/MyBroadCastReciver: -- 接收到的消息 -- = 你好,我是调用者,mainApp.会返回给你数据,请查收!!!
2019-12-17 11:57:37.630 29603-29603/com.zqc.testdemo E/MyBroadCastReciver: -- 接收到的消息 -- = 你好,我是调用者,mainApp.会返回给你数据,请查收!!!
2019-12-17 11:58:01.597 29603-29603/com.zqc.testdemo E/MyBroadCastReciver: -- 接收到的消息 -- = 你好,我是调用者,mainApp.会返回给你数据,请查收!!!
2019-12-17 11:58:02.441 29603-29603/com.zqc.testdemo E/MyBroadCastReciver: -- 接收到的消息 -- = 你好,我是调用者,mainApp.会返回给你数据,请查收!!!
2019-12-17 11:58:03.085 29603-29603/com.zqc.testdemo E/MyBroadCastReciver: -- 接收到的消息 -- = 你好,我是调用者,mainApp.会返回给你数据,请查收!!!
2019-12-17 11:58:54.938 892-909/system_process W/BroadcastQueue: Background execution not allowed: receiving Intent { act=com.zqc.testdemo.MyBroadCastReciver flg=0x400010 } to com.zqc.testdemo/.MyBroadCastReciver