Android程式之一鍵鎖屏

來源:互聯網
上載者:User

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)廣播接受者的設定(資訊清單檔):

                                                                                                                                                                

運行效果:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.