根据 android 开发人员文档:
没有规定提供用户定义的权限来保护粘性广播。
我尝试使用 sendStickyBroadcastAsUser ,它要求应用程序具有两件事(根据上面的链接):1. 拥有“INTERACT_ACROSS_USERS”权限和 2. 应用程序必须是系统应用程序。
但是,我已经尝试按照指南实施它,但仍然可以在没有上述两个前提条件的情况下接收粘性广播(即,在没有所需许可的情况下使用普通应用程序),这仍然使我的广播不安全。
以下是我的代码片段:
// send sticky broadcast.
Intent intent = new Intent("my_action");
intent.putExtra("my_extra", state);
if (DebugMode.DEBUG) {
Log.d(TAG, "Sending Broadcast " + intent.toUri(0));
}
Parcel in = Parcel.obtain();
context.sendStickyBroadcastAsUser(intent, new UserHandle(in ));
in.recycle();
我不能使用普通广播,因为它需要留在系统中,以便其他应用程序从中读取我的应用程序状态。
有没有办法保护我的粘性广播?