从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
源码见附件!:)
相关推荐
"手机卫士11"项目实战中的"锁屏操作与恢复出厂模式"是其中的关键功能,旨在提供用户更高级别的设备保护和数据清理选项。下面将详细探讨这两个功能的实现及其在Android系统中的工作原理。 首先,让我们关注锁屏操作...
在锁屏软件中,hook钩子常用于监听键盘和鼠标事件,当检测到用户无操作达到一定时间后,会触发锁屏操作。此外,hook还可以用于捕获密码输入,确保只有输入正确密码的用户才能解锁屏幕。 具体到C#实现hook,通常会...
1. **BroadcastReceiver**:通常,应用会创建一个`BroadcastReceiver`监听电源按钮事件,当电源按钮被按下时,广播接收器接收到对应的Intent,然后执行锁屏操作。注册广播接收器通常在`AndroidManifest.xml`中完成,...
- 在实际应用中,为了安全起见,你可能需要检查用户权限,确保只有具有相应权限的用户才能执行锁屏操作。这可能需要在应用启动时请求必要的权限。 4. **跨平台兼容性**: - 虽然上述示例主要针对Windows,但其他...
在JavaScript中实现弹出层和锁屏操作是网页交互中常见的功能,这涉及到对DOM元素的操作、CSS样式的动态修改以及事件监听等技术。在这个示例中,我们将深入理解如何利用JS来创建一个弹出层,并同时实现锁屏效果。 ...
- 锁屏操作通常是由用户手动触发的,或者在一段时间内没有进行任何操作后自动执行。此时,`KeyguardViewManager`会调用`KeyguardViewMediator`来显示锁屏界面。 - 解锁操作涉及密码验证、图案解锁等多种方式。这些...
对于锁屏应用,你需要在`AndroidManifest.xml`文件中声明`android.permission.DEVICE_ADMIN_ADMIN`权限,因为只有设备管理员才能执行锁屏操作。 接下来,我们讨论设备管理员(Device Administrator)。在Android中...
在这个场景下,可能会创建一个Intent来触发锁屏操作,并设置相应的IntentFilter以便BroadcastReceiver能够捕获。 7. **异步操作**: 为了保证用户体验,锁屏操作应该在一个后台线程中执行,避免阻塞主线程。可以...
4. **用户界面**:虽然“一键锁屏”强调的是快速无广告,但仍然需要一个简单的用户界面,让用户触发锁屏操作。可以创建一个桌面快捷方式、命令行工具或GUI应用。在Go中,可以使用如`github.com/g3n/engine`这样的库...
具体来说,程序会利用定时器来周期性地检查是否有用户活动,如果没有,则执行锁屏操作。此外,还需要通过消息过滤器来监听鼠标和键盘等输入设备的状态变化。 ##### 3. **定时器的应用** 在给定的代码片段中,`this...
当用户点击我们自定义的一键锁屏按钮时,可以发送一个自定义广播,然后BroadcastReceiver接收到这个广播后执行锁屏操作: ```java public class ScreenLockReceiver extends BroadcastReceiver { @Override ...
在Android平台上,创建一个有趣的锁屏程序,要求用户正确回答问题才能进行锁屏操作,是一项既挑战性又具有趣味性的任务。这样的应用可以提高用户的互动性,并为日常的锁屏体验带来新的乐趣。下面我们将详细探讨如何...
此外,为了防止恶意应用滥用一键锁屏功能,Android系统可能会限制非系统应用执行锁屏操作。因此,在实际开发中,这种功能通常仅适用于系统应用或有特定权限的应用。 通过分析这个"一键锁屏功能源码",我们可以学习...
"锁屏精灵(LockWinScr)V2.5"就是这样的软件,它可以帮助用户快速、方便地对电脑进行锁屏操作。 锁屏软件的主要功能是提供一种安全机制,当用户离开计算机但不希望他人访问其屏幕内容时,可以迅速将屏幕切换到锁定...
7. **异常处理**:为了增加应用的健壮性,需要对可能出现的异常进行处理,例如用户没有授予所需权限,或者在某些设备上锁屏操作失败等情况。 通过理解以上知识点,开发者可以深入学习并实现这个一键锁屏应用。源码...
在AndroidManifest.xml文件中,我们需要添加相应的权限,如` android.permission.WAKE_LOCK`,以便在锁屏时保持设备唤醒状态,防止在执行锁屏操作时设备立即进入休眠。 2. **BroadcastReceiver**: 实现一键锁屏...
C#提供了线程同步机制,如`Mutex`、`Semaphore`或`Monitor`,确保了锁屏操作的正确性和安全性。 4. **权限管理**:为了能执行锁屏操作,程序可能需要管理员权限。C#提供`System.Security.Principal`命名空间,用于...
这个函数通常会绑定到一个按钮的点击事件,当用户点击该按钮时,执行锁屏操作。在函数内部,使用`KeyguardManager`和`KeyguardLock`来控制锁屏。首先,获取KeyguardManager的实例,然后调用`newKeyguardLock()`方法...
1. **BroadcastReceiver**:通过注册BroadcastReceiver监听设备的状态变化,例如电源键的按下事件,当检测到该事件时触发锁屏操作。 2. **PowerManager**:使用PowerManager类的wakelock功能,确保在锁屏过程中设备...