Why am I not getting a warning on all recipients?
Because the first two are clearly designed to broadcast Android. The latter is unknown, partly because you did not specify the value of the string resource and, possibly, because these are your own unique action strings.
What permissions do I need to set for receivers designed to receive from system services to correct a warning
The correct solution is to remove the <intent-filter> . If you pass these Intents or if you wrap an Intent in getBroadcast() PendingIntent , you don't need action lines. Use the Intent constructor, which takes a Java class object as the second parameter and uses it:
new Intent(this, BatteryMonitoringReceiver.class)
You can still attach the action line to the Intent if you want, but you can reset the <intent-filter> (the routing will be based on the supplied component, in this case the Java class).
Use only <intent-filter> when you expect the OS or third-party applications to start Intent themselves (the execution of the PendingIntent that you created is not taken into account).
CommonsWare Apr 19 '13 at 19:54 on 2013-04-19 19:54
source share