Android自定义广播设置只能由指定的APP接收

思路:类似给Activity的访问添加权限,给广播添加访问权限。Android中是可以自定义权限的,可以对四大组件的访问加上一层保护。

我们在使用Android中的API形式,或者使用adb命令都可以在外部打开一个应用的Activity/Service,以及发送一个广播。所以这个对于一个应用来说是很不安全的,即权限是一种保护机制。

发送广播

1
2
3
4
Intent intent = new Intent("me.yezhou.AppBlog");
intent.addCategory("receiver");
intent.putExtra("message", "test");
sendOrderedBroadcast(intent, "me.yezhou.receiver");

AndroidManifest.xml

1
2
3
<!--自定义权限-->
<uses-permission android:name="me.yezhou.receiver" ></uses-permission>
<permission android:protectionLevel="normal" android:name="me.yezhou.receiver"></permission>

接收广播

1
2
3
4
5
6
7
8
9
10
11
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

1
2
3
4
5
6
7
8
9
10
11
<!--自定义权限-->
<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访问添加权限)。

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :