- 浏览: 532534 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
调用系统的锁屏Demo
程序运行后:
[img]
[/img]
点击激活设备管理权限按钮显示如下:
[img]
[/img]
点击Activate后,然后点击系统锁使用按钮,界面如下:
[img]
[/img]
工程结构图:
[img]
[/img]
AdminReceiver
DevicePolicyManagerDemoActivity
main.xml
lockourscreen.xml
配置文件:
程序运行后:
[img]
[/img]
点击激活设备管理权限按钮显示如下:
[img]
[/img]
点击Activate后,然后点击系统锁使用按钮,界面如下:
[img]
[/img]
工程结构图:
[img]
[/img]
AdminReceiver
package com.amaker.lock; import android.app.admin.DeviceAdminReceiver; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.IBinder; import android.util.Log; import android.widget.Toast; public class AdminReceiver extends DeviceAdminReceiver { @Override public DevicePolicyManager getManager(Context context) { Log.i("XiaoMaGuo", "调用了getManager()方法"); return super.getManager(context); } @Override public ComponentName getWho(Context context) { Log.i("XiaoMaGuo", "调用了getWho()方法"); return super.getWho(context); } /** * 禁用 */ @Override public void onDisabled(Context context, Intent intent) { Log.i("XiaoMaGuo", "调用了onDisabled()方法"); Toast.makeText(context, "禁用设备管理", Toast.LENGTH_SHORT).show(); super.onDisabled(context, intent); } @Override public CharSequence onDisableRequested(Context context, Intent intent) { Log.i("XiaoMaGuo", "调用了onDisableRequested()方法"); return super.onDisableRequested(context, intent); } /** * 激活 */ @Override public void onEnabled(Context context, Intent intent) { Log.i("XiaoMaGuo", "调用了onEnabled()方法"); Toast.makeText(context, "启动设备管理", Toast.LENGTH_SHORT).show(); super.onEnabled(context, intent); } @Override public void onPasswordChanged(Context context, Intent intent) { Log.i("XiaoMaGuo", "调用了onPasswordChanged()方法"); super.onPasswordChanged(context, intent); } @Override public void onPasswordFailed(Context context, Intent intent) { Log.i("XiaoMaGuo", "调用了onPasswordFailed()方法"); super.onPasswordFailed(context, intent); } @Override public void onPasswordSucceeded(Context context, Intent intent) { Log.i("XiaoMaGuo", "调用了onPasswordSucceeded()方法"); super.onPasswordSucceeded(context, intent); } @Override public void onReceive(Context context, Intent intent) { Log.i("XiaoMaGuo", "调用了onReceive()方法"); super.onReceive(context, intent); } @Override public IBinder peekService(Context myContext, Intent service) { Log.i("XiaoMaGuo", "调用了peekService()方法"); return super.peekService(myContext, service); } }
DevicePolicyManagerDemoActivity
package com.amaker.lock; import android.app.Activity; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * @Title: DevicePolicyManagerDemoActivity.java * @Package com.xiaoma.www * @Description: 屏幕锁测试 * @author MZH * @version V2.2 */ public class DevicePolicyManagerDemoActivity extends Activity { private Button startPermissionBtn; private Button stopPermissionBtn; private Button sysLockBtn; private DevicePolicyManager dpm; private ComponentName componentName ; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //初始化 init(); } /** * 初始化实现 */ private void init(){ //资源声明定位 startPermissionBtn = (Button)findViewById(R.id.button1); stopPermissionBtn = (Button)findViewById(R.id.button2); sysLockBtn = (Button)findViewById(R.id.button3); startPermissionBtn.setOnClickListener(listener); stopPermissionBtn.setOnClickListener(listener); sysLockBtn.setOnClickListener(listener); //取得系统服务 dpm = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); componentName = new ComponentName(this, AdminReceiver.class); } /** * 按钮监听器的实现,此处小马讲下,在实现监听的时候不要在一个分支里面写太多逻辑处理 * 分支只负责分支,不负责处理,要处理的话可以模块化,处理函数抽出去就可以了 * 小马希望大家从一开始就养成个好习惯,吼吼。。 */ private OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { //以下是三个按钮分别处理的事件实现 switch (v.getId()) { case R.id.button1: //开启设备权限 startDeviceManager(); break; case R.id.button2: //停止设备权限 stopDeviceManager(); break; case R.id.button3: //调用系统锁 sysLock(); break; default: break; } } }; /** * 启动设备管理权限 */ private void startDeviceManager(){ //添加一个隐式意图,完成设备权限的添加 //这个Intent (DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)跳转到 权限提醒页面 //并传递了两个参数EXTRA_DEVICE_ADMIN 、 EXTRA_ADD_EXPLANATION Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); //权限列表 //EXTRA_DEVICE_ADMIN参数中说明了用到哪些权限, intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName); //描述(additional explanation) //EXTRA_ADD_EXPLANATION参数为附加的说明 intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "--小马坏,小马爱,小马瓜瓜怪--"); startActivityForResult(intent, 0); } /** * 禁用设备管理权限方法实现 */ private void stopDeviceManager(){ Log.i("XiaoMaGuo","------ unActiveManage ------"); boolean active = dpm.isAdminActive(componentName); if (active) { dpm.removeActiveAdmin(componentName); } } /** * 调用系统锁方法实现 */ private void sysLock(){ boolean active = dpm.isAdminActive(componentName); if (active) { dpm.lockNow(); } } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="激活设备管理权限" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="禁用设备管理权限" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="系统锁使用" /> </LinearLayout>
lockourscreen.xml
<?xml version="1.0" encoding="UTF-8"?> <device-admin xmlns:android="http://schemas.android.com/apk/res/android"> <uses-policies> <!-- 强行锁定 --> <force-lock /> <!-- 因为今天我们只讲下简单的,所以其它的权限,小马先暂时注释掉咯,有兴趣的朋友们可以打开自己试下--> <!-- 清除所有数据(恢复出厂设置)--> <wipe-data /> <!-- 重置密码 --> <reset-password /> <!-- 限制密码选择--> <limit-password /> <!-- 监控登录尝试 --> <watch-login /> </uses-policies> </device-admin>
配置文件:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.amaker.lock" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name="com.amaker.lock.DevicePolicyManagerDemoActivity" android:label="欢迎跟小马一起交流学习" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".AdminReceiver" android:description="@string/description" android:label="@string/labelValue" android:permission="android.permission.BIND_DEVICE_ADMIN" > <meta-data android:name="android.app.device_admin" android:resource="@xml/lockourscreen"/> <intent-filter> <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> </intent-filter> </receiver> </application> </manifest>
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2004android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2042Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1550SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 781Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 735转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1004===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1683(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1429在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 978package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1238工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 990SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1222Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 794一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1158运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 899package com.zzl.tools; impor ...
相关推荐
在Android中,锁屏功能是由系统的`KeyguardService`提供的,它是系统服务的一部分,负责管理屏幕锁定和解锁的行为。 1. **系统服务与Binder通信**: Android系统服务是运行在系统进程中的组件,它们通过 Binder ...
这可能需要对事件监听器进行编程,确保在正确的时间调用锁屏方法。 总的来说,实现Java软件锁屏功能需要对操作系统API有一定了解,并且能够通过JNI或第三方库进行调用。在实际开发中,还需要考虑跨平台兼容性和安全...
9. **模块化与封装**:为了代码的可维护性和复用性,可以将锁屏功能封装成一个独立的模块或插件,提供易于调用的接口,如`lockScreen()`和`unlockScreen()`。 10. **安全性**:锁屏功能在处理敏感信息时尤其重要,...
在IT领域,有时我们需要防止设备自动锁定屏幕,特别是在进行演示、连续播放视频或者进行需要长时间无间断操作的场景。"阻止屏幕锁屏2"这个主题涉及到的技术点主要是操作系统级别的电源管理和用户界面交互。 首先,...
在C#编程中,实现锁屏功能涉及到对操作系统API的调用和Windows Forms的应用程序设计。这个"C#锁屏功能实现"项目包含了多个文件,它们共同构成了一个简单的C#应用程序,用于实现系统的锁屏功能。下面我们将逐一分析...
接下来,你可以使用这个静态方法在需要的地方调用锁屏功能,如下所示: ```csharp public void LockScreen() { if (LockScreenHelper.LockWorkStation()) { Console.WriteLine("屏幕已锁定"); } else { ...
一键锁屏应用允许用户快速便捷地锁定屏幕,而不必按住电源键或者滑动屏幕。本篇将深入探讨这个“一键锁屏功能”的源码,解析其背后的实现原理和关键代码。 首先,我们要理解Android系统的锁屏机制。在Android系统中...
6. **系统交互**:锁屏工具需要有能力控制系统的显示状态,例如调用API函数来隐藏桌面、禁用鼠标和键盘等。 7. **进程管理**:为了防止用户强制关闭或结束锁屏程序,开发者可能需要监控和保护自己的进程,防止被...
在Windows操作系统中,锁屏功能是一项重要的安全特性,它允许用户快速锁定计算机,防止未经授权的访问。本程序基于.NET Framework 2.0开发,这意味着它利用了微软在2005年发布的这个早期版本的.NET框架,以实现跨多...
2. **系统权限**:在某些系统中,锁定屏幕可能需要获取相应的权限,如Android系统的`SYSTEM_ALERT_WINDOW`或`USAGE_STATS`权限。 3. **API调用**:在不同平台上,锁屏功能的实现可能依赖于特定的API,例如在Android...
锁定屏幕的功能通常是通过调用Windows API(应用程序接口)来实现的。Windows API提供了丰富的函数和结构,允许开发者与操作系统进行交互,包括控制用户的会话和安全性。以下是一些关键的API知识点: 1. **LogonUI*...
对于锁屏功能,Windows提供了`SystemParametersInfo` API函数,允许我们获取或设置系统参数,包括屏幕保护程序的设置。但是,阻止系统锁屏同样需要谨慎处理,因为这可能违反用户的期望和系统的安全策略。 总的来说...
标题 "windows xp快速锁定屏幕可执行程序+源码" 提示我们关注的是一个专为Windows XP设计的程序,它的功能是快速锁定计算机屏幕。在Windows XP操作系统中,用户可能需要迅速离开电脑但又不希望他人随意访问其桌面,...
通过分析这个源码,开发者可以了解到如何在Android平台上实现一键锁屏功能,包括BroadcastReceiver的使用、权限管理、系统API的调用,以及UI设计和性能优化等多方面的知识。这不仅有助于理解Android系统的运作机制,...
然而,在特定的开发环境中,如VFP,可能需要自定义的解决方案,尤其是当需要在程序运行时自动或临时锁定屏幕时。这里提到的“使用虚拟桌面来解决”是一种巧妙的方法,它利用了操作系统提供的多桌面功能来模拟屏幕...
如果超过30秒,调用锁屏函数。为了记录用户的最后一次活动,可以使用全局变量存储上一次鼠标或键盘事件的时间戳。 4. **锁屏界面与密码验证**: 锁屏界面一般会显示一个密码输入框和解锁按钮。使用`Windows Forms`...
在安卓(Android)系统中,实现一键锁屏功能是一个常见的需求,这可以帮助用户快速锁定设备,保护隐私并节省电量。本资源"安卓Android源码——一键锁屏功能源码.zip"提供了一个关于如何在Android应用中实现这一功能...
通过`PowerManager`的`newWakeLock()`方法获取一个`WakeLock`对象,然后调用其`acquire()`方法来保持屏幕亮着并锁定。接着,调用`KeyguardManager`的`requestLock()`方法来激活锁屏。 5. **处理用户交互**:创建一...
标题中的".net实现网吧锁屏源码--屏蔽系统热键"指的是使用.NET框架开发的一款特殊软件,该软件的主要功能是在网吧环境下锁定计算机屏幕,并阻止用户通过系统热键(如Alt+Tab、Ctrl+Esc等)切换窗口或退出锁定状态。...