欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程程序实现一键锁屏的方法讲解

程序员文章站 2022-07-04 20:26:16
android程序之一键锁屏 (1)布局文件activity_main.xml如下:

android程序之一键锁屏

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

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".mainactivity" >
  <button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onclick="openadmin"
    android:text="开启管理员权限" />
  <button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerinparent="true"
    android:onclick="lockscreen"
    android:text="一键锁屏" />
  <button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignparentbottom="true"
    android:onclick="uninstall"
    android:text="卸载软件" />
</relativelayout>

(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 {
}

(4)广播接受者的设置(清单文件):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.xuliugen.lockscreen"
  android:versioncode="1"
  android:versionname="1.0" >
  <uses-sdk
    android:minsdkversion="10"
    android:targetsdkversion="16" />
  <application
    android:allowbackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/apptheme" >
    <activity
      android:name="com.xuliugen.lockscreen.mainactivity"
      android:label="@string/app_name" >
      <intent-filter>
        <action android:name="android.intent.action.main" />
        <category android:name="android.intent.category.launcher" />
      </intent-filter>
    </activity>
    <!-- 广播接收者 -->
    <receiver
      android:name="com.xuliugen.lockscreen.myadmin"
      android:description="@string/sample_device_admin_description"
      android:label="@string/sample_device_admin"
      android:permission="android.permission.bind_device_admin" >
      <meta-data
        android:name="android.app.device_admin"
        android:resource="@xml/device_admin_sample" />
      <intent-filter>
        <action android:name="android.app.action.device_admin_enabled" />
      </intent-filter>
    </receiver>
  </application>
</manifest>

运行效果:

Android编程程序实现一键锁屏的方法讲解

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接