从API Level 8开始,添加了一个新的类DeviceAdminReceiver,官方文档:http://developer.android.com/reference/android/app/admin/DeviceAdminReceiver.html
下面说明如何使用这个类来实现锁屏,具体如下:
1、自定义DeviceAdminReceiver
public class CustomDeviceAdminReceiver extends DeviceAdminReceiver {
public static ComponentName getComponentName(Context context) {
return new ComponentName(context, CustomDeviceAdminReceiver.class);
}
}
2、Activity中的逻辑处理
public class MainActivity extends Activity {
private DevicePolicyManager devicePolicyManager = null;
private static final int REQUEST_CODE_ADD_DEVICE_ADMIN = 10001;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
devicePolicyManager = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
if (devicePolicyManager.isAdminActive(CustomDeviceAdminReceiver.getComponentName(this))) {
devicePolicyManager.lockNow();
finish();
} else {
startAddDeviceAdminAty();
}
}
private void startAddDeviceAdminAty() {
Intent i = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
i.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, CustomDeviceAdminReceiver.getComponentName(this));
i.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "注册此组件后才能拥有锁屏功能");
startActivityForResult(i, REQUEST_CODE_ADD_DEVICE_ADMIN);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
devicePolicyManager.lockNow();
finish();
} else {
startAddDeviceAdminAty();
}
super.onActivityResult(requestCode, resultCode, data);
}
}
3、定义XML文件,声明一些属性(文件名称:device_admin.xml)
<?xml version="1.0" encoding="utf-8"?> <device-admin xmlns:android="http://schemas.android.com/apk/res/android" > <uses-policies> <limit-password /> <watch-login /> <reset-password /> <force-lock /> <wipe-data /> <expire-password /> <encrypted-storage /> <disable-camera /> <disable-keyguard-features /> </uses-policies> </device-admin>
4、在Manifest文件中声明Receiver
<!-- 设备管理器 --> <receiver android:name=".CustomDeviceAdminReceiver" android:permission="android.permission.BIND_DEVICE_ADMIN" > <meta-data android:name="android.app.device_admin" android:resource="@xml/device_admin" /> <intent-filter> <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> </intent-filter> </receiver>
注意:android:minSdkVersion="8"
原文链接:http://www.apkbus.com/android-123504-1-1.html
源码见附件!:)