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
分享
二维码
打赏
海报
Android自定义广播设置只能由指定的APP接收
思路:类似给Activity的访问添加权限,给广播添加访问权限。Android中是可以自定义权限的,可以对四大组件的访问加上一层保护。 我们在使用Android中的API形式……
<<上一篇
下一篇>>
文章目录
关闭
目 录