把intent-filter、action name、permission等都检查过了,没有任何问题,后来上官网重新把Broadcast的教程看了一遍也没发现任何问题。后来解决方法如下:
对发送的Intent要加上包名,即要调用setPackage()方法(Android8以后),不然就会出现接收方收不到广播的现象。(这里得吐槽一下官网,这么关键却又不起眼的特性更改都不写清楚点…让初学者怎么排查得出这个原因?很让人抓狂好吧?)
更新:
发现setComponentName,setClass等显式指定了接收器或者包名的方法,也可以正常接收
参考了该帖,感谢老哥:
https://blog.csdn.net/ywanju/article/details/137378317?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-5-137378317-blog-135521938.235%5Ev43%5Epc_blog_bottom_relevance_base5&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-5-137378317-blog-135521938.235%5Ev43%5Epc_blog_bottom_relevance_base5&utm_relevant_index=8