Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之實現鎖屏功能

Android開發之實現鎖屏功能

編輯:關於Android編程

鎖屏需要引入設備超級管理員。在文檔Android開發文檔的Administration中有詳細的說明。Android設備管理系統功能和控制訪問。

主要有一下幾個步驟:

1 創建廣播接收者,實現DeviceAdminReceiver

package com.andy.lockscreen;

import android.app.admin.DeviceAdminReceiver;

/** 
 * @author Zhang,Tianyou
 * @version 2014年11月20日 下午9:51:42
 * 
 * 特殊的廣播接受者 接收 管理員權限廣播
 */

public class MyAdmin extends DeviceAdminReceiver{

}

2 在清單文件中注冊該廣播(不同普通的廣播,需按照說明格式):




    

    
        
            
                

                
            
        
        
         
            

            
                
            
        
    



3 在res下創建xml文件夾,創建對應的xml文件device_admin_sample.xml


  
    
    
    
    
    
    
    
    
  

4 在values文件下string.xml添加

    用戶管理員的描述信息
    設置管理權限

5 界面文件:



     


6 實現鎖屏和開啟設備管理員權限,卸載文件

package com.andy.lockscreen;

import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

	/**
	 * 設備策略服務
	 */
	private DevicePolicyManager dpm;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
	}

	/**
	 * 鎖屏
	 * 
	 * @param view
	 */
	public void lockcreen(View view) {
		ComponentName who = new ComponentName(this, MyAdmin.class);
		// 判斷是否已經開啟管理員權限
		if (dpm.isAdminActive(who)) {
			// 鎖屏
			dpm.lockNow();
			// 設置屏幕密碼 第一個是密碼 第二個是附加參數
			dpm.resetPassword("123", 0);

			// 清楚數據
			// WIPE_EXTERNAL_STORAGE 清楚sdcard的數據
			// 0 恢復出廠設置
			//dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
		} else {
			// 如果為未開啟 提示
			Toast.makeText(MainActivity.this, "請先開啟管理員權限!", Toast.LENGTH_SHORT)
					.show();
		}
	}
	

	/**
	 * 代碼開啟管理權限
	 * 
	 * @param view
	 */
	public void openAdmin(View view) {
		// 創建一個Intent 添加設備管理員
		Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
		// 激活MyAdmin廣播接收著
		ComponentName who = new ComponentName(this, MyAdmin.class);

		intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, who);
		// 說明用戶開啟管理員權限的好處
		intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
				"開啟可以一鍵鎖屏,防止勿碰");
		startActivity(intent);
		
		Toast.makeText(MainActivity.this, "管理員權限已開啟!", Toast.LENGTH_SHORT).show();
	}

	/**
	 * 卸載當前的軟件 設備管理數據特殊應用 所以不能普通卸載
	 */

	public void uninstall(View view) {
		// 1. 先清除管理員權限
		ComponentName who = new ComponentName(this,
				MyAdmin.class);
		dpm.removeActiveAdmin(who);

		// 2. 普通應用的卸載
		Intent intent = new Intent();
		intent.setAction("android.intent.action.VIEW");
		intent.addCategory("android.intent.category.DEFAULT");
		intent.setData(Uri.parse("package:"+getPackageName()));
		startActivity(intent);

	}

}



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved