Android的一键锁屏
来源:互联网 发布:程序员如何入门 编辑:程序博客网 时间:2024/06/05 15:34
今天我要讲一下Android的一键锁屏。
这需要用到DevicePolicyMAnager【设配管理器】和ComponentName(
DevicePolicyManager 可以通过他获取设配得管理权限
【方法】
LockNow() 在这个例子中用到的、实行锁屏的动作
ComponentName 可以打开其他应用的Activity的服务、
MainActivity。Java
private DevicePolicyManager manager;
private ComponentName componentName;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("---->Lock!!!","start lock");
manager = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
componentName = new ComponentName(MainActivity.this,LockScreen.class);
//判断是否有权限
if(manager.isAdminActive(componentName)){
manager.lockNow();
//kill掉Activity 避免浪费程序
android.os.Process.killProcess(android.os.Process.myPid());
finish();
}else{
activeManager();
}
}
private void activeManager() {
//激活获取设配的权限
Intent it = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
it.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,componentName);
it.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "我的锁屏");
startActivity(it);
finish();
}
}
LockScreen.java
import android.app.admin.DeviceAdminReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class LockScreen extends DeviceAdminReceiver{ //一定要继承DeviceAdminReceiver类
public void onReceiver(Context context,Intent it){
Log.i("-----Lock","接收");
super.onReceive(context, it);
}
public void onEnabled(Context context,Intent it){
Log.i("----Lock!!1","激活");
super.onEnabled(context, it);
}
public void onDisabled(Context context,Intent it){
Log.i("-----Lock!!!","取消");
super.onDisabled(context, it);
}
}
AndroidManifest。xml文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.my6"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.android.my6.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="com.android.my6.LockScreen"
android:permission="android.permission.BIND_DEVICE_ADMIN"
>
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/lock_screen"/>
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
</intent-filter>
</receiver>
</application>
<uses-permission
android:name="android.permission.DISABLE_KEYGUARD"/>
</manifest>
- Android一键锁屏的例子
- Android的一键锁屏
- Android一键锁屏的实现
- Android一键锁屏功能的实现
- Android的android.mk
- android的android:taskAffinity
- android的Android.mk
- Android-Android的Fragment
- Android的android:width和android:layout_width
- Android笔记:android一键锁屏
- android 一 android 的生命周期
- [Android] Android的音频采集
- [android]android的容器、控件
- android xmlns:android的作用
- [Android] Android Activity的生命周期
- Android-Android Studio的安装
- android应用程序的启动【Android】
- 【Android】android的显示原理
- 人品计算器V1.0
- D3DPRESENT_PARAMETERS详解
- GridControl详解(七)事件
- 分支-10. 计算个人所得税(10)
- 数据标准化(归一化)处理
- Android的一键锁屏
- easyUI——表单验证
- 黑马程序员——学习笔记——知识复习1
- SDUTOJ 3034 ——炸学校
- 【学渣的奋斗之路】【汇编语言】 1.11~1.15
- GridControl详解(八)菜单
- 分支-11. 计算工资(15)
- c++ primer 第一章自学
- GridControl详解(九)表格中的控件