Android自定义广播设置只能由指定的APP接收
思路:类似给Activity的访问添加权限,给广播添加访问权限。Android中是可以自定义权限的,可以对四大组件的访问加上一层保护。
我们在使用Android中的API形式,或者使用adb命令都可以在外部打开一个应用的Activity/Service,以及发送一个广播。所以这个对于一个应用来说是很不安全的,即权限是一种保护机制。
发送广播
Intent intent = new Intent("me.yezhou.AppBlog");
intent.addCategory("receiver");
intent.putExtra("message", "test");
sendOrderedBroadcast(intent, "me.yezhou.receiver");
AndroidManifest.xml
<!--自定义权限-->
<uses-permission android:name="me.yezhou.receiver" ></uses-permission>
<permission android:protectionLevel="normal" android:name="me.yezhou.receiver"></permission>
接收广播
public class AppBlogReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Log.d("yezhou", "AppBlogReceiver: " + bundle.getString("message"));
}
}
}
AndroidManifest.xml
<!--自定义权限-->
<uses-permission android:name="me.yezhou.receiver" ></uses-permission>
<application>
<receiver android:name="me.yezhou.receiver.AppBlogReceiver" android:permission="me.yezhou.receiver">
<intent-filter>
<action android:name="me.yezhou.AppBlog" />
<category android:name="receiver" />
</intent-filter>
</receiver>
</application>
同理我们可以对其他组件进行权限保护(可能用的比较多的是对Activity访问添加权限)。
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/11/android-custom-broadcast-settings-can-only-be-received-by-specified-apps/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
打赏
海报
Android自定义广播设置只能由指定的APP接收
思路:类似给Activity的访问添加权限,给广播添加访问权限。Android中是可以自定义权限的,可以对四大组件的访问加上一层保护。
我们在使用Android中的API形式……
文章目录
关闭
共有 0 条评论