Android屏幕锁定实例源码详解教程一,微信小程序信息管理系统

3.DeviceAdminInfo

This class is used to specify meta information of a device administrator component.

再不懂的可以在网上查下,以下是在网上查到的,贴出来:

DevicePolicyManager

这是设备管理的主类.通过它可以实现屏幕锁定、屏幕亮度调节、出厂设置等功能.

DeviceAdminReceiver

该类继承自 BroadcastReceiver . 从源码可以看到,其实就是实现了一个OnReceive方法,该方法中根据不同的Action,执行相应的操作. 比如,如果激活成功,那么Action就是ACTION_DEVICE_ADMIN_ENABLED, 据此调用 onEnabled 方法.

DeviceAdminInfo

包括设备信息,Info,就是Information嘛,呵,,乱猜也可以猜到,至于里面什么属性,到时候朋友们可以直接"."下就知道啦.

比如:

DeviceAdminReceiver.USES_POLICY_FORCE_LOCK , 这个就是本次要用的"强制锁定屏幕"的权限. 不过这些权限一般都直接通过XML文件来定义. 稍后你就会看到.

Android手机中手机屏幕的锁定方式有以下几种 ,不文字描述了,直接上图,看着爽

以下是拖的布局,因为只讲功能,界面就不说什么美观不美观了,拖三个按钮,三个按钮看按钮上的的文本内容就知道是用在什么地方的, 不多讲,今天先测试下系统锁,因为没学会走呢,就先不去学跑了,大伙跟着一起慢慢来,先从简单的开始吧.

界面效果如下:

点击第一个按钮会跳到权限提醒页面,如图所示:

上面这个页面只是提醒你你要激活的所有设备权限,点击激活后会跳回首页,再去点击系统锁使用时,就达到咱们的目的啦,吼吼。。如图所示

光看我做的效果可不行,大家别忘了在全局配置文件里面配置,不然报错的,添加以下代码:

<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”/>

<action android:name=“android.app.action.DEVICE_ADMIN_ENABLED” />

下面我贴出完整的代码,供朋友们学习使用,有不懂之处,可直接提出疑问,我们共同交流:

主类:

package com.xiaoma.www;

import com.xiaoma.www.R;

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();

}

}

}

接收类:

package com.xiaoma.www;

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

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数同学面临毕业设计项目选题时,很多人都会感到无从下手,尤其是对于计算机专业的学生来说,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。

因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
img
img
img

既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!

由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频

如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
img

总结,更是展示自己能力的重要机会。**

因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
[外链图片转存中…(img-5jS81INn-1712511460074)]
[外链图片转存中…(img-zjTW9Eoo-1712511460074)]
[外链图片转存中…(img-d3uxO45D-1712511460075)]

既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!

由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频

如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
[外链图片转存中…(img-mGwLpPBA-1712511460075)]

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值