Open SiberiaDante opened 10 months ago
动态注册广播,根据 谷歌官方的解释是有例外情况的,动态注册系统广播 不需要指定 导出标识。另外 在7.0及以上,即使在清单文件中静态注册了,也收不到这个广播。动态注册例外参见:https://developer.android.com/about/versions/14/behavior-changes-14?hl=zh-cn#system-broadcasts
系统广播在这个android sdk 目录下 broadcast_actions.txt 文件里面能找到
描述 Bug
简洁地描述下 Bug。
相关代码
文件: com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver$1.java 方法: public void run() 代码: v1.registerReceiver(v2, v0);
建议修复
1.使用 LocalBroadcastManager 来替代registerReceiver注册,保证数据传递仅限于应用内。 2.使用registerReceiver(BroadcastReceiver, IntentFilter, broadcastPermission,android.os.Handle)替代registerReceiver(BroadcastReceiver, IntentFilter),检验权限。 3.在 AndroidManifest.xml 文件中静态注册BroadcastReceiver,同时设置 exported="false"。