转自: http://www.apkbus.com/android-123504-1-1.html
Android一键锁屏工具,不需要Root权限,在这里与大写分享源码,希望大家能够喜欢。
MainActivity类的源码如下:
- package com.plter.onekeylock;
-
- import android.app.Activity;
- import android.app.admin.DevicePolicyManager;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
-
- public class MainActivity extends Activity {
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- devicePolicyManager = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
-
- if (devicePolicyManager.isAdminActive(DAR.getCn(this))) {
- devicePolicyManager.lockNow();
- finish();
- }else{
- startAddDeviceAdminAty();
- }
- }
-
- private void startAddDeviceAdminAty(){
- Intent i = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
- i.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
- DAR.getCn(this));
- i.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
- "注册此组件后才能拥有锁屏功能");
-
- startActivityForResult(i, REQUEST_CODE_ADD_DEVICE_ADMIN);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-
- if (resultCode==Activity.RESULT_OK) {
- devicePolicyManager.lockNow();
- finish();
- }else{
- startAddDeviceAdminAty();
- }
-
- super.onActivityResult(requestCode, resultCode, data);
- }
-
- @Override
- protected void onPause() {
- // finish();
- super.onPause();
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
-
- private DevicePolicyManager devicePolicyManager=null;
- private static final int REQUEST_CODE_ADD_DEVICE_ADMIN=10001;
-
- }
- package com.plter.onekeylock;
-
- import android.app.admin.DeviceAdminReceiver;
- import android.content.ComponentName;
- import android.content.Context;
- import android.content.Intent;
-
- public class DAR extends DeviceAdminReceiver {
-
- public static ComponentName getCn(Context context){
- return new ComponentName(context, DAR.class);
- }
-
- @Override
- public void onEnabled(Context context, Intent intent) {
- // TODO Auto-generated method stub
- super.onEnabled(context, intent);
- }
-
- @Override
- public void onDisabled(Context context, Intent intent) {
- // TODO Auto-generated method stub
- super.onDisabled(context, intent);
- }
- }
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.plter.onekeylock"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk
- android:minSdkVersion="8"
- android:targetSdkVersion="15" />
-
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <activity
- android:name=".MainActivity"
- android:label="@string/title_activity_main"
- android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
-
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
-
- <!-- 设备管理器 -->
- <receiver android:name=".DAR"
- android:permission="android.permission.BIND_DEVICE_ADMIN">
-
- <meta-data android:name="android.app.device_admin"
- android:resource="@xml/device_admin" />
-
- <intent-filter>
- <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
- </intent-filter>
- </receiver>
- </application>
-
- </manifest>
- <?xml version="1.0" encoding="utf-8"?>
- <device-admin xmlns:android="http://schemas.android.com/apk/res/android">
- <uses-policies>
- <limit-password />
- <watch-login />
- <reset-password />
- <force-lock />
- <wipe-data />
- </uses-policies>
-
-