`
wangleyiang
  • 浏览: 221682 次
社区版块
存档分类
最新评论

锁屏操作

阅读更多

从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

 

源码见附件!:)

分享到:
评论

相关推荐

    Android项目实战--手机卫士11--锁屏操作与恢复出厂模式

    "手机卫士11"项目实战中的"锁屏操作与恢复出厂模式"是其中的关键功能,旨在提供用户更高级别的设备保护和数据清理选项。下面将详细探讨这两个功能的实现及其在Android系统中的工作原理。 首先,让我们关注锁屏操作...

    锁屏(用C#编写的锁屏软件)

    在锁屏软件中,hook钩子常用于监听键盘和鼠标事件,当检测到用户无操作达到一定时间后,会触发锁屏操作。此外,hook还可以用于捕获密码输入,确保只有输入正确密码的用户才能解锁屏幕。 具体到C#实现hook,通常会...

    Android应用源码之一键锁屏功能源码.zip

    1. **BroadcastReceiver**:通常,应用会创建一个`BroadcastReceiver`监听电源按钮事件,当电源按钮被按下时,广播接收器接收到对应的Intent,然后执行锁屏操作。注册广播接收器通常在`AndroidManifest.xml`中完成,...

    java实现软件锁屏功能

    - 在实际应用中,为了安全起见,你可能需要检查用户权限,确保只有具有相应权限的用户才能执行锁屏操作。这可能需要在应用启动时请求必要的权限。 4. **跨平台兼容性**: - 虽然上述示例主要针对Windows,但其他...

    JS实现的添加弹出层并完成锁屏操作示例

    在JavaScript中实现弹出层和锁屏操作是网页交互中常见的功能,这涉及到对DOM元素的操作、CSS样式的动态修改以及事件监听等技术。在这个示例中,我们将深入理解如何利用JS来创建一个弹出层,并同时实现锁屏效果。 ...

    Android待机流程分析---锁屏、解锁模块.

    - 锁屏操作通常是由用户手动触发的,或者在一段时间内没有进行任何操作后自动执行。此时,`KeyguardViewManager`会调用`KeyguardViewMediator`来显示锁屏界面。 - 解锁操作涉及密码验证、图案解锁等多种方式。这些...

    Android 一键锁屏Demo

    对于锁屏应用,你需要在`AndroidManifest.xml`文件中声明`android.permission.DEVICE_ADMIN_ADMIN`权限,因为只有设备管理员才能执行锁屏操作。 接下来,我们讨论设备管理员(Device Administrator)。在Android中...

    一键锁屏(源码)

    在这个场景下,可能会创建一个Intent来触发锁屏操作,并设置相应的IntentFilter以便BroadcastReceiver能够捕获。 7. **异步操作**: 为了保证用户体验,锁屏操作应该在一个后台线程中执行,避免阻塞主线程。可以...

    一键锁屏功能实现

    4. **用户界面**:虽然“一键锁屏”强调的是快速无广告,但仍然需要一个简单的用户界面,让用户触发锁屏操作。可以创建一个桌面快捷方式、命令行工具或GUI应用。在Go中,可以使用如`github.com/g3n/engine`这样的库...

    程序自动锁屏 针对软件自身

    具体来说,程序会利用定时器来周期性地检查是否有用户活动,如果没有,则执行锁屏操作。此外,还需要通过消息过滤器来监听鼠标和键盘等输入设备的状态变化。 ##### 3. **定时器的应用** 在给定的代码片段中,`this...

    android 一键锁屏例程

    当用户点击我们自定义的一键锁屏按钮时,可以发送一个自定义广播,然后BroadcastReceiver接收到这个广播后执行锁屏操作: ```java public class ScreenLockReceiver extends BroadcastReceiver { @Override ...

    锁屏程序 有趣 要回答对问题才能锁屏

    在Android平台上,创建一个有趣的锁屏程序,要求用户正确回答问题才能进行锁屏操作,是一项既挑战性又具有趣味性的任务。这样的应用可以提高用户的互动性,并为日常的锁屏体验带来新的乐趣。下面我们将详细探讨如何...

    一键锁屏功能源码

    此外,为了防止恶意应用滥用一键锁屏功能,Android系统可能会限制非系统应用执行锁屏操作。因此,在实际开发中,这种功能通常仅适用于系统应用或有特定权限的应用。 通过分析这个"一键锁屏功能源码",我们可以学习...

    电脑锁屏软件用来锁屏的哈不会的叫我

    "锁屏精灵(LockWinScr)V2.5"就是这样的软件,它可以帮助用户快速、方便地对电脑进行锁屏操作。 锁屏软件的主要功能是提供一种安全机制,当用户离开计算机但不希望他人访问其屏幕内容时,可以迅速将屏幕切换到锁定...

    安卓一键锁屏源码

    7. **异常处理**:为了增加应用的健壮性,需要对可能出现的异常进行处理,例如用户没有授予所需权限,或者在某些设备上锁屏操作失败等情况。 通过理解以上知识点,开发者可以深入学习并实现这个一键锁屏应用。源码...

    android 一键锁屏

    在AndroidManifest.xml文件中,我们需要添加相应的权限,如` android.permission.WAKE_LOCK`,以便在锁屏时保持设备唤醒状态,防止在执行锁屏操作时设备立即进入休眠。 2. **BroadcastReceiver**: 实现一键锁屏...

    一个C#版本的锁屏工具

    C#提供了线程同步机制,如`Mutex`、`Semaphore`或`Monitor`,确保了锁屏操作的正确性和安全性。 4. **权限管理**:为了能执行锁屏操作,程序可能需要管理员权限。C#提供`System.Security.Principal`命名空间,用于...

    Android开发一键锁屏

    这个函数通常会绑定到一个按钮的点击事件,当用户点击该按钮时,执行锁屏操作。在函数内部,使用`KeyguardManager`和`KeyguardLock`来控制锁屏。首先,获取KeyguardManager的实例,然后调用`newKeyguardLock()`方法...

    一键锁屏源代码分享

    1. **BroadcastReceiver**:通过注册BroadcastReceiver监听设备的状态变化,例如电源键的按下事件,当检测到该事件时触发锁屏操作。 2. **PowerManager**:使用PowerManager类的wakelock功能,确保在锁屏过程中设备...

Global site tag (gtag.js) - Google Analytics