锁屏操作

从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

源码见附件!:)

猜你喜欢

转载自wangleyiang.iteye.com/blog/1968145
今日推荐