最近用到静态广播的时候发现收不到,百度一搜说Android8.0以后加了限制…Emm…

解决办法这里写两个:

1.发送广播的Intent里添加Component参数。
两个参数,一个是包名,一个是receiver所在路径+类名

Intent intent = new Intent("com.example.sendbroadcast.faultmsg");intent.putExtra("Data", InfoObj.toString());intent.setComponent(new ComponentName("com.example.sendbroadcast", "com.example.sendbroadcast.receiver.MsgReceiver"));sendBroadcast(intent);

这种方法虽然好用,但限制颇多,一旦改了包名或者receiver换了文件路径就接收不到了,所以介绍第二种方法。

2.通过action name遍历所有的receiver

Intent intent = new Intent("com.example.sendbroadcast.faultmsg");PackageManager pm = getPackageManager();if(null == pm) return;List<ResolveInfo> broadcastReceivers = pm.queryBroadcastReceivers(intent, 0);for(int i = 0;i < broadcastReceivers.size(); i++) {    Log.v("YYYY", "resolveInfos---" + broadcastReceivers.get(i).toString());    intent.setPackage((broadcastReceivers.get(i).activityInfo.packageName));    intent.putExtra("Data", InfoObj.toString());    sendBroadcast(intent);}

以上~

更多相关文章

  1. Android中的Drawable资源—— VectorDrawable
  2. 常用方法(2)------根据图片的url路径获得Bitmap对象
  3. android 2.2 视频和图片的缩略图处理
  4. Android实现京东秒杀界面
  5. Android中Message传递参数【安卓进化十六】
  6. Android(安卓)http get/post传递参数
  7. Android开发之Toast全接触
  8. android 获取应用签名文件的sha1值、md5(签名值)、sha256值的方法
  9. Android(安卓)获取内存卡路径及外存储路径方法

随机推荐

  1. android架构
  2. Android开发方式分析
  3. Android(安卓)Studio 第四十九期 - Sqlit
  4. android 界面布局 很好的一篇总结 【转】
  5. Android(安卓)保存图片到相册无法显示的
  6. XE5 开发android平台搭建
  7. 四、View的事件体系
  8. [Android][Audio] audio_policy.conf文件
  9. 【实习项目记录】(三)调整网络图片固定宽
  10. Android中的Handler