本文实践代码是在Android7.1上的系统级源码上验证通过的。
1.首先是发送方:
在frameworks\base\core\res\AndroidManifest.xml中定义权限
<protected-broadcast android:name="intent.action.LOW_MEMORY" />
<uses-permission android:name="com.softmanager.permission.send.SOFTMANAGER"/>
<permission android:name="com.softmanager.permission.send.SOFTMANAGER"
android:protectionLevel="signature|privileged"/>
在代码需求的地方发出广播
Intent systemMgrIntent = new Intent();
systemMgrIntent.setAction("intent.action.LOW_MEMORY");
systemMgrIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
context.sendOrderedBroadcast(systemMgrIntent, "com.softmanager.permission.receiver.SOFTMANAGER");
2.然后是接受方:
在项目的
AndroidManifest.xml中声明权限
<uses-permission android:name="com.softmanager.permission.receiver.SOFTMANAGER" />
<permission
android:name="com.gionee.softmanager.permission.receiver.SOFTMANAGER"
android:protectionLevel="normal" />
android:permission="com.softmanager.permission.send.SOFTMANAGER"
在Receiver.java中要添加权限
<receiver android:name=".Receiver"
android:permission="com.softmanager.permission.send.SOFTMANAGER"
android:exported="true">
<intent-filter>
<action android:name="intent.action.LOW_MEMORY"/>
</intent-filter>
</receiver>
最后在onReceiver()中就能接受到广播了