Android編程實現一鍵鎖屏的方法_Android

來源:互聯網
上載者:User

本文執行個體講述了Android編程實現一鍵鎖屏的方法。分享給大家供大家參考,具體如下:

這裡要用到下面兩個類:

DeviceAdminReceiver 裝置管理組件。這個類提供了一個方便解釋由系統發出的意圖的動作。你的裝置管理應用程式必須包含一個DeviceAdminReceiver的子類。本程式中,就代表一個手機上的裝置管理員.

DevicePolicyManager 一個管理裝置上規範的類。 大多數用戶端必須聲明一個使用者當前已經啟用的DeviceAdminReceiver。 這個DevicePolicyManager為一個或者多個DeviceAdminReceiver執行個體管理這些規範。

DevicePolicyManager 的執行個體有個方法叫lockNow可以直接鎖定螢幕.但是在這之前,需要啟用程式中的裝置管理員.

下面是主類LockActivity

package com.iceman.test; 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; public class LockActivity extends Activity {   private DevicePolicyManager policyManager;   private ComponentName componentName;   @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);    }   public void LockScreen(View v){    policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);     componentName = new ComponentName(this, LockReceiver.class);     if (policyManager.isAdminActive(componentName)) {//判斷是否有許可權(啟用了裝置管理員)       policyManager.lockNow();// 直接鎖屏       android.os.Process.killProcess(android.os.Process.myPid());     }else{       activeManager();//啟用裝置管理員擷取許可權     }     }  // 解除綁定  public void Bind(View v){   if(componentName!=null){    policyManager.removeActiveAdmin(componentName);    activeManager();   }  }  @Override   protected void onResume() {//重寫此方法用來在第一次啟用裝置管理員之後鎖定螢幕     if (policyManager!=null && policyManager.isAdminActive(componentName)) {       policyManager.lockNow();       android.os.Process.killProcess(android.os.Process.myPid());     }     super.onResume();   }   private void activeManager() {     //使用隱式意圖調用系統方法來啟用指定的裝置管理員     Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);     intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);     intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "一鍵鎖屏");     startActivity(intent);   } } 

下面是裝置管理員類LockReceiver,這是一個繼承自DeviceAdminReceiver的類,可以接收到啟用/接觸啟用的廣播,進行下一步操作,本程式中,只是簡單列印一下資訊.

import android.app.admin.DeviceAdminReceiver; import android.content.Context; import android.content.Intent; public class LockReceiver extends DeviceAdminReceiver{   @Override   public void onReceive(Context context, Intent intent) {     super.onReceive(context, intent);     System.out.println("onreceiver");   }   @Override   public void onEnabled(Context context, Intent intent) {     System.out.println("啟用使用");     super.onEnabled(context, intent);   }   @Override   public void onDisabled(Context context, Intent intent) {     System.out.println("取消啟用");     super.onDisabled(context, intent);   } } 

主設定檔:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"   package="com.iceman.test"   android:versionCode="1"   android:versionName="1.0" >   <uses-sdk android:minSdkVersion="9" />   <application     android:icon="@drawable/ic_launcher"     android:label="@string/app_name" >     <activity       android:name=".LockActivity"       android:label="@string/app_name"       android:theme="@android:style/Theme.Translucent" >       <intent-filter>         <action android:name="android.intent.action.MAIN" />         <category android:name="android.intent.category.LAUNCHER" />       </intent-filter>     </activity>     <receiver       android:name=".LockReceiver"       android:description="@string/app_name"       android:label="@string/app_name"       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> </manifest> 

其中lock_screen是裝置管理員的許可權聲明,需要在res/xml目錄下以xml檔案形式定義

<?xml version="1.0" encoding="UTF-8"?> <device-admin xmlns:android="http://schemas.android.com/apk/res/android" >   <uses-policies>     <!-- 鎖定螢幕 -->     <force-lock />   </uses-policies> </device-admin> 

OK.現在自己也可以做一鍵鎖屏了.不用去網上找各種各樣帶廣告帶推送的了.

希望本文所述對大家Android程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.