当前位置:操作系统 > 安卓/Android >>

Android ApiDemos示例解析(21):App->Device Admin

Device Admin示例介绍了类DeviceAdminReceiver,DevicePolicyManager和ActivityManager。

类DevicePolicyManager 用于管理Android设备定义的一些策略,主要指密码定义的长度,密码是否要含大写字母,小写字母等设置密码需要满足的规范,锁定设备或是清除所有用户数据,这个类一般需要配合DeviceAdminReceiver来使用。DeviceAdminReceiver派生于BroadcastReceiver,可以接受Android操作系统发出的Intent事件:如密码过期了,密码更新等。

当它Publish在AndroidManifest.xml作为BroadcastReceiver定义时,必须处理android.app.action.DEVICE_ADMIN_ENABLED和设置android.permission.BIND_DEVICE_ADMIN权限:

<receiver android:name=”.app.DeviceAdminSample”
android:label=”@string/sample_device_admin”
android:description=”@string/sample_device_admin_description”
android:permission=”android.permission.BIND_DEVICE_ADMIN”>
<meta-data android:name=”android.app.device_admin”
android:resource=”@xml/device_admin_sample” />
<intent-filter>
<action android:name=”android.app.action.DEVICE_ADMIN_ENABLED” />
< /intent-filter>
< /receiver>

使用DevicePolicyManager 来设置密码定义的Policy

[java] 
void updatePolicies() { 
 SharedPreferences prefs = getSamplePreferences(this); 
 final int pwQuality = prefs.getInt(PREF_PASSWORD_QUALITY, 
 DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); 
 final int pwLength = prefs.getInt(PREF_PASSWORD_LENGTH, 0); 
 final int maxFailedPw = prefs.getInt(PREF_MAX_FAILED_PW, 0); 
  
 boolean active = mDPM.isAdminActive(mDeviceAdminSample); 
 if (active) { 
 mDPM.setPasswordQuality(mDeviceAdminSample, pwQuality); 
 mDPM.setPasswordMinimumLength(mDeviceAdminSample, pwLength); 
 mDPM.setMaximumFailedPasswordsForWipe(mDeviceAdminSample, maxFailedPw); 
 } 

void updatePolicies() {
 SharedPreferences prefs = getSamplePreferences(this);
 final int pwQuality = prefs.getInt(PREF_PASSWORD_QUALITY,
 DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
 final int pwLength = prefs.getInt(PREF_PASSWORD_LENGTH, 0);
 final int maxFailedPw = prefs.getInt(PREF_MAX_FAILED_PW, 0);
 
 boolean active = mDPM.isAdminActive(mDeviceAdminSample);
 if (active) {
 mDPM.setPasswordQuality(mDeviceAdminSample, pwQuality);
 mDPM.setPasswordMinimumLength(mDeviceAdminSample, pwLength);
 mDPM.setMaximumFailedPasswordsForWipe(mDeviceAdminSample, maxFailedPw);
 }
}
锁定设备方法:

[java] 
mDPM.lockNow(); 
mDPM.lockNow();
清除所有用户数据(相当于Master Reset)

[java]
mDPM.wipeData(0); 
mDPM.wipeData(0);
ActivityManager类一般用来获取Android系统中所有运行的Activity的信息,有点类似Windows中的Task Manager。可以获得 Memory ,Process ,Service等信息。而在例子中使用了一个很好笑的方法:isUserAMonkey ,用来判断当前设备使用者是否为一只猴子:-)。真不知道如果来判断,我以为如果这是乱敲键盘会使这个函数返回“真”。结果不是:)。

总的来说这些类和方法在一般的应用中用到的地方很少,有些印象就可以了。
\
作者:mapdigit
 
 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,