Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android程序之一鍵鎖屏

Android程序之一鍵鎖屏

編輯:關於Android編程

(1)布局文件activity_main.xml如下:

(2)MainActivity.java

package com.xuliugen.lockscreen;

import com.itheima.lockscreen.R;

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) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);

    }

    /**
     * 用代碼去開啟管理員
     */
    public void openAdmin(View view) {
        // 創建一個Intent
        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
        // 我要激活誰
        ComponentName mDeviceAdminSample = new ComponentName(this,MyAdmin.class);

        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceAdminSample);
        // 勸說用戶開啟管理員權限
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"哥們開啟我可以一鍵鎖屏,你的按鈕就不會經常失靈");
        startActivity(intent);
    }

    /**
     * 一鍵鎖屏
     */
    public void lockscreen(View view) {
        ComponentName who = new ComponentName(this, MyAdmin.class);
        if (dpm.isAdminActive(who)) {
            dpm.lockNow();// 鎖屏
            dpm.resetPassword("", 0);// 設置屏蔽密碼

            // 清除Sdcard上的數據
            // dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
            // 恢復出廠設置
            // dpm.wipeData(0);
        } else {
            Toast.makeText(this, "還沒有打開管理員權限", 1).show();
            return;
        }

    }

    /**
     * 卸載當前軟件
     */

    public void uninstall(View view) {

        // 1.先清除管理員權限
        ComponentName mDeviceAdminSample = new ComponentName(this,
                MyAdmin.class);
        dpm.removeActiveAdmin(mDeviceAdminSample);
        // 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);
    }

}

(3)根據API文檔可知,需要一個類繼承DeviceAdminReceiver:

package com.xuliugen.lockscreen;

import android.app.admin.DeviceAdminReceiver;

/**
 * 特殊的廣播接收者
 * 
 * @author xuliugen
 * 
 */
public class MyAdmin extends DeviceAdminReceiver {

}

(5)廣播接受者的設置(清單文件):




    

    
        
            
                

                
            
        

        
        
            

            
                
            
        
    

運行效果:

這裡寫圖片描述

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