【Android开发Wiki】进阶篇企业开发—加强安全与设备管理策略.pdf
文本预览下载声明
eoe 移动开发者社区 /
原文链接:
/training/enterprise/device-management-policy.html
自从Android 2.2(API等级8),Android平台通过设备管理API提供了系统级的设备管理
能力。
这节课中,你将会学到如何通过强制设备管理策略创建一个安全敏感的应用程序。具体来说,
程序可以被如此配置,比如它可以在给用户显示受限制的内容之前,确保设置一个足够强度
的屏保锁密码。
定义并声明你的策略
首先你需要定义一种在功能层面提供支持的策略。这些策略可以覆盖到屏幕锁密码强度、过
期延时、以及加密等等方面。
你必须在res/xml/device_admin.xml 中声明所选择的策略集,它将会被程序强制实行。Andro
id manifest也将引用声明的策略集。
每个声明的策略对应于DevicePolicyManager 中的一些相关设备的策略方法(例如定义最
小密码长度或最少大写字母数量)。如果一个程序尝试调用在XML中没有对应策略的方法,
这将会在运行时导致一个SecurityException异常。如果程序打算管理其他策略,那么其他
权限,例如_强制锁(force-lock) ,就会发挥作用。正如你将要看到的,作为设备管理
员激活处理(the device administrator activation process)的一部分,声明策略的列
表将会在系统屏幕上显示给用户。
如下代码片段在res/xml/device_admin.xml中声明了密码限制策略:
device-admin xmlns:android=/apk/res/android
1
uses-policies
2
limit-password /
3
/uses-policies
4
/device-admin
5
在Android manifest引用到的XML策略声明:
1receiver android:name=.Policy$PolicyAdmin
2 android:permission=android.permission.BIND_DEVICE_ADMIN
3 meta-data android:name=android.app.device_admin
4 android:resource=@xml/device_admin /
5 intent-filter
6 action android:name=android.app.action.DEVICE_ADMIN_ENABLED /
7 /intent-filter
8/receiver
eoe 移动开发者社区 /
创建一个设备管理接收者(Receiver)
创建一个设备管理广播接收者(broadcast receiver),它能接收到与你声明支持的策略有关
的事件的通知。一个程序可以有选择地重写回调函数。
在同样的程序中,Device Admin,当设备管理员(device administrator)账户被用户设置
为禁用时,配置好的策略就会从shared preference中擦除。你应该考虑实现与你的应用情
况有关的业务逻辑。例如,你的程序可能会采取一些行动来减轻安全风险,比如通过结合实
现删除设备上的敏感数据,禁用远程同步,提醒管理员,等等。
为了让广播接收者能够工作,请务必在Android manifest中注册在上面的代码片段所示的
内容。
public static class PolicyAdmin extends DeviceAdminReceiver {
1
2 @Override
3 public void onDisabled(Context context, Intent intent) {
4 // Called when the app is about to be deactivated as a device administrator.
5 // Deletes previously storedpasswordpolicy.
6 super.onDisabled(context, intent
显示全部