参考     https://f-droid.org/repository/browse/?fdid=it.reyboz.screenlock

1,写一个页面,主题用android:theme="@android:style/Theme.NoDisplay" 这样就没有闪退的效果。

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 com.example.lenovo.bean.R;public class MainActivity extends Activity {   final static int ENABLE_ADMIN = 1;   final static int SUCESS = -1;   private ComponentName mAdminName = null;   public  void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      mAdminName = new ComponentName(this, AdminManageReceiver.class);      DevicePolicyManager mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);//在设备上执行管理政策      if (!mDPM.isAdminActive(mAdminName)) {//如果未激活         showAdminManagement();//打开手机设备管理器      }      if (mDPM.isAdminActive(mAdminName)) {         mDPM.lockNow();//执行锁屏      } else {         Log.e("screenlock", "Unable to lock the phone D:");      }      finish();   }   private void showAdminManagement() {      // TODO Auto-generated method stub      Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);//打开手机设备管理器的intent      intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName);      intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,            R.string.desc_enable_admin);      startActivityForResult(intent, ENABLE_ADMIN);   }}

,2,注册一个设备管理员权限接收器,并绑定权限BIND_DEVICE_ADMIN


import android.app.admin.DeviceAdminReceiver;

public class AdminManageReceiver extends DeviceAdminReceiver {        //注册一个接收器接受设备管理器是否激活}


    android:name="it.reyboz.screenslock.MainActivity"    android:theme="@android:style/Theme.NoDisplay"    android:label="@string/app_name"    android:excludeFromRecents="true" >            android:name="android.intent.action.MAIN" />        android:name="android.intent.category.DEFAULT" />        android:name="android.intent.category.LAUNCHER" />        android:name="android.intent.action.ASSIST" />        android:name="it.reyboz.screenslock.AdminManageReceiver"    android:label="@string/app_name"    android:permission="android.permission.BIND_DEVICE_ADMIN" >            android:name="android.app.device_admin"        android:resource="@xml/device_admin" />            android:name="android.app.action.DEVICE_ADMIN_ENABLED" />    


需要配置强制锁屏

Android 2.2 SDK提供了一个可管理和操作设备的API叫DevicePolicyManager,使用这个API你可以接管手机的应用权限,对手机做出很多大胆的操作,比如锁屏、恢复出厂设置、设置密码、强制清除密码,修改密码、设置屏幕灯光渐暗时间间隔等操作。

                android:name="android.app.device_admin"
                android:resource="@xml/device_admin" />


xml文件如下


   
         //强制锁屏,这里还可以配置其他的如恢复出厂设置、设置密码
   



3,源码地址https://f-droid.org/repo/it.reyboz.screenlock_2_src.tar.gz

更多相关文章

  1. 使用程序创建Android桌面快捷方式
  2. 动态设置 view 宽高
  3. 第3.2.1节 android基本视图
  4. 常见UI控件的使用-富文本、textview
  5. android上传图片至服务器
  6. 使用代码为textview设置drawableLeft
  7. Android(安卓)面试题之基础(不断更新)
  8. TextView设置一行最多显示6个字是什么属性?
  9. Android(安卓)之开机启动Service

随机推荐

  1. android activity/service开机后自动运行
  2. Android(安卓)Studio导入Github项目时Plu
  3. Android(安卓)蓝牙 资料(转)
  4. Android(安卓)FrameWork——Touch事件派
  5. [Android] Dagger2 入门 1
  6. 笔记-系统源码常用的Content Provider
  7. android JNI NDK
  8. [置顶] 利用Cocos2dx3.2制作重力版俄罗斯
  9. Android使用模板生成Word文档并查看
  10. ViewPage的使用配合我们的PagerTabStrip