Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android簡易實戰教程--第五話《開發一鍵鎖屏應用》

Android簡易實戰教程--第五話《開發一鍵鎖屏應用》

編輯:關於Android編程

Device Administration

對於這個應用,市場上很多,但是看一下評論就知道效果有多差了,因為99%一鍵鎖屏應用沒辦法卸載。今天就開發一個小應用,實現輕松點擊一鍵鎖屏,同時支持卸載。。。   通查看谷歌原文檔,有設備管理器的API,從這裡可以抽取一些代碼,開發出一個小應用,即即將介紹的《一鍵鎖屏》。 根據文檔翻譯,獲取設備管理器的大致步驟如下:

1,創建類DeviceAdminReceiver的子類

如:com.itydl.lockscreen.DeviceAdminSample

2,在清單文件中配置廣播接收者


        

        
            
        
    

3,配置字符串相關信息

 設備管理員
管理員
開啟設備管理員,不開啟扣2000塊

4,在res目錄下創建xml文件夾,在該文件夾下創建deviceadminsample.xml文件,內容:

   
  
    
    
    
    
    
    
    
    
  

5,在代碼中創建設備管理器和組件

dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
    ComponentName who = new ComponentName(this, DeviceAdminSample.class);

6,寫功能

dpm.lockNow();一鍵鎖屏
上述步驟有些晦澀,看一下實際操作步驟(建議通過閱讀官網AP文檔I一步步操作):   1、把下方官方文檔給出的配置文件的代碼復制到自己創建的工程裡面: \   復制過去發現報錯了,因為三條描述屬性信息沒有配置,那麼去String.xml中配置以下三條信息:
 設備管理員
管理員
開啟設備管理員,不開啟扣2000塊
刪除掉配置文件中系統自帶的activity節點信息。修改復制過來的activity標簽name為我們工程的活動名稱。   此時還是報錯,因為還有一個android:resource="@xml/device_admin_sample" 沒有配置 新建xml的文件夾,建一個device_admin_sample的文件,裡面需要配置一些內容。把官方文檔中的內容全部寫入即可。 內容如下:   \     解決了報錯問題。   2、按照文檔要求,新建一個class DeviceAdminSample extends DeviceAdminReceiver。這是一個服務,裡面不需要寫任何內容 記得把配置文件中活動和服務名稱修改為我們自己的。 android:name="com.itydl.lockscreen.DeviceAdminSample" android:name="com.itydl.lockscreen.MainActivity"   3、在活動中添加如下兩行代碼:   DevicePolicyManager dmp = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); dmp.lockNow();//一鍵鎖屏 此時其實已經開發完畢了,但是這僅僅對於程序員有效,進入設備管理器激活這個應用;對於用戶不知道在哪激活,根本得不得體驗,所以還需要設置一鍵鎖屏的時候,加入開啟設備管理器活動的而邏輯。 具體的代碼如下: 清單文件:



    

    
        
        
            
                

                
            
        


        
            

            
                
            
        

    

 
package com.itydl.lockscreen;

import android.os.Bundle;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Intent;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

	private DevicePolicyManager dmp;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		dmp = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
	}

	/**
	 * 一鍵鎖屏
	 * 
	 * @param v
	 */
	public void lockScreen(View v) {
		// 如果沒有激活設備管理員,提醒用戶做事
		ComponentName who = new ComponentName(this, DeviceAdminSample.class);
		if (dmp.isAdminActive(who)) {// true表示已經激活
			dmp.lockNow();// 一鍵鎖屏

		} else {
			/**根據官方文檔,寫出啟動設備管理器的活動
			 * // Launch the activity to have the user enable our admin. Intent
			 * intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
			 * intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
			 * mDeviceAdminSample);
			 * intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
			 * mActivity.getString(R.string.add_admin_extra_app_text));
			 * startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN);
			 */
			
			Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
			intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
					 who);
			intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
					  "設備管理器。。。");
			startActivityForResult(intent, 1);
		}
	}

}

此時記得去設備管理器取消激活。 一鍵運行之後如下:   \
點擊一鍵鎖屏後,自動跳轉到設備管理器頁面,按下Activiate。應用就生效了。   這個時候應用算是開發完畢了,的確能實現鎖屏功能,但是還有很多問題需要解決。 你會發現此時的而應用和市場上評論一樣,沒法卸載!!! 這樣用戶體驗也很差,而且必須點開用用才能鎖屏,那就沒必要浪費時間點開一個應用去鎖屏了。 對於上面幾個問題,在後邊的博文中繼續更新解決。  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved