实现锁屏代码(锁屏工具,不需root权限)

转自: http://www.apkbus.com/android-123504-1-1.html

Android一键锁屏工具,不需要Root权限,在这里与大写分享源码,希望大家能够喜欢。


MainActivity类的源码如下:

  1. package com.plter.onekeylock;

  2. import android.app.Activity;
  3. import android.app.admin.DevicePolicyManager;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.view.Menu;

  7. public class MainActivity extends Activity {

  8.     @Override
  9.     public void onCreate(Bundle savedInstanceState) {
  10.         super.onCreate(savedInstanceState);        

  11.         devicePolicyManager = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);

  12.         if (devicePolicyManager.isAdminActive(DAR.getCn(this))) {
  13.                 devicePolicyManager.lockNow();
  14.                 finish();
  15.                 }else{
  16.                         startAddDeviceAdminAty();
  17.                 }
  18.     }

  19.     private void startAddDeviceAdminAty(){
  20.             Intent i = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
  21.                 i.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
  22.                 DAR.getCn(this));
  23.         i.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
  24.                 "注册此组件后才能拥有锁屏功能");

  25.                 startActivityForResult(i, REQUEST_CODE_ADD_DEVICE_ADMIN);
  26.     }

  27.     @Override
  28.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  29.             if (resultCode==Activity.RESULT_OK) {
  30.                     devicePolicyManager.lockNow();
  31.                     finish();
  32.                 }else{
  33.                         startAddDeviceAdminAty();
  34.                 }

  35.             super.onActivityResult(requestCode, resultCode, data);
  36.     }

  37.     @Override
  38.     protected void onPause() {
  39. //            finish();
  40.             super.onPause();
  41.     }

  42.     @Override
  43.     public boolean onCreateOptionsMenu(Menu menu) {
  44. //        getMenuInflater().inflate(R.menu.activity_main, menu);
  45.         return true;
  46.     }

  47.     private DevicePolicyManager devicePolicyManager=null;
  48.     private static final int REQUEST_CODE_ADD_DEVICE_ADMIN=10001;

  49. }
复制代码
DAR类源码如下
  1. package com.plter.onekeylock;

  2. import android.app.admin.DeviceAdminReceiver;
  3. import android.content.ComponentName;
  4. import android.content.Context;
  5. import android.content.Intent;

  6. public class DAR extends DeviceAdminReceiver {

  7.         public static ComponentName getCn(Context context){
  8.                 return new ComponentName(context, DAR.class);
  9.         }

  10.         @Override
  11.         public void onEnabled(Context context, Intent intent) {
  12.                 // TODO Auto-generated method stub
  13.                 super.onEnabled(context, intent);
  14.         }

  15.         @Override
  16.         public void onDisabled(Context context, Intent intent) {
  17.                 // TODO Auto-generated method stub
  18.                 super.onDisabled(context, intent);
  19.         }
  20. }
复制代码
AndroidManifest.xml源码如下:
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2.     package="com.plter.onekeylock"
  3.     android:versionCode="1"
  4.     android:versionName="1.0" >

  5.     <uses-sdk
  6.         android:minSdkVersion="8"
  7.         android:targetSdkVersion="15" />

  8.     <application
  9.         android:icon="@drawable/ic_launcher"
  10.         android:label="@string/app_name"
  11.         android:theme="@style/AppTheme" >
  12.         <activity
  13.             android:name=".MainActivity"
  14.             android:label="@string/title_activity_main"
  15.             android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
  16.             <intent-filter>
  17.                 <action android:name="android.intent.action.MAIN" />

  18.                 <category android:name="android.intent.category.LAUNCHER" />
  19.             </intent-filter>
  20.         </activity>

  21.         <!-- 设备管理器 -->
  22.         <receiver android:name=".DAR"
  23.                                 android:permission="android.permission.BIND_DEVICE_ADMIN">

  24.                 <meta-data android:name="android.app.device_admin"
  25.                        android:resource="@xml/device_admin" />

  26.                 <intent-filter>
  27.                         <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
  28.                 </intent-filter>
  29.         </receiver>
  30.     </application>

  31. </manifest>
复制代码
/res/xml/device_admin.xml的源码如下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <device-admin xmlns:android="http://schemas.android.com/apk/res/android">
  3.     <uses-policies>
  4.         <limit-password />
  5.         <watch-login />
  6.         <reset-password />
  7.         <force-lock />
  8.         <wipe-data />
  9.     </uses-policies>


复制代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值