软件编程
位置:首页>> 软件编程>> Android编程>> android实现一键锁屏和一键卸载的方法实例

android实现一键锁屏和一键卸载的方法实例

作者:Hacker_Guo  发布时间:2022-12-13 15:59:08 

标签:android,一键锁屏,一键卸载

前言

本文主要介绍了关于android实现一键锁屏和一键卸载的相关内容,分享出来供大家参考学习,这两个功能也是大家在开发中会遇到的两个需求,下面话不多说了,来一起看看详细的介绍吧。

一.设备管理器操作步骤

1.创建类DeviceAdminReceiver的子类

如:com.itheima62.lockscreen.DeviceAdminSample

2.在清单文件中配置广播接收者


<receiver
 android:name="com.itheima62.lockscreen.DeviceAdminSample"
 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>

3.配置字符串相关信息


<string name="activity_sample_device_admin">设备管理员</string>
<string name="sample_device_admin">管理员</string>
<string name="sample_device_admin_description">开启设备管理员,不开启扣2000块</string>

4.在res目录下创建xml文件夹,在该文件夹下创建device_admin_sample.xml文件,内容:


<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
</device-admin>

5.在代码中创建设备管理器和组件


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

6.写功能


dpm.lockNow();一键锁屏

二.源代码

创建类DeviceAdminReceiver的子类


package com.example.suoping;
import android.app.admin.DeviceAdminReceiver;
public class DeviceAdminSample extends DeviceAdminReceiver
{

}

MainActivity


package com.example.suoping;

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

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);
 lockScreen(null);
}

/**
 * @param v
 * 一键锁屏
 */
public void lockScreen(View v)
{
 //如果没有激活设备管理员,提醒给用户做事
 ComponentName who = new ComponentName(this, DeviceAdminSample.class);
 if (dpm.isAdminActive(who))
 {
  dpm.lockNow();//一键锁屏
  finish();
 }
 else
 {

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);
 }
}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
 getMenuInflater().inflate(R.menu.main, menu);
 return true;
}
}

RemoveActivity


package com.example.suoping;

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;

public class RemoveActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
 // TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 remove(null);

}

/**
 * 一键卸载
 * @param v
 */
public void remove(View v)
{
 // 取消激活设备管理
 DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
 ComponentName who = new ComponentName(this, DeviceAdminSample.class);
 dpm.removeActiveAdmin(who);//取消激活管理设备

//卸载
 Intent remove = new Intent("android.intent.action.DELETE");
 remove.addCategory("android.intent.category.DEFAULT");
 remove.setData(Uri.parse("package:" + getPackageName()));
 startActivity(remove);//卸载用户apk的界面
}
}

布局文件

MainActivity.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"
android:background="#00000000">
</RelativeLayout>

RemoveActivity.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"
android:background="#00000000"
>
</RelativeLayout>

AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.suoping"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
 android:minSdkVersion="8"
 android:targetSdkVersion="18" />

<application
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:theme="@style/AppTheme" >
 <activity
  android:name="com.example.suoping.MainActivity"
  android:label="一键锁屏" >
  <intent-filter>
   <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
 </activity>
  <activity
  android:name="com.example.suoping.RemoveActivity"
  android:label="一键卸载" >
  <intent-filter>
   <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
 </activity>

<receiver
  android:name="com.example.suoping.DeviceAdminSample"
  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>

device_admin_sample.xml


<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
</device-admin>

strings.xml


<resources>
<string name="app_name">一键锁屏</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="activity_sample_device_admin">设备管理员</string>
<string name="sample_device_admin">管理员</string>
<string name="sample_device_admin_description">开启设备管理员,不开启扣2000块</string>
</resources>

来源:https://blog.csdn.net/jiang_xinxing/article/details/79346978

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com