一键锁频

来源:互联网 发布:微信抢红包排雷软件 编辑:程序博客网 时间:2024/06/17 23:57

这里,一键锁频只是用了超级管理权限中的一个,超级管理权限有很多个,比如禁用相机,擦出数据等。

利用API是:file:///D:/help_document/android4.4API/guide/topics/admin/device-admin.html

主Activity代码

public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void lockScreen(View view){/** * 1、获取系统服务:得到设备的超级管理器 * 2、写一个类继承(实际为广播接受者) * 3、完成广播接收的配置(看API) */DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);//devicePolicyManager.setCameraDisabled(admin, disabled);设置相机是否有用//devicePolicyManager.resetPassword(password, flags)重新设计密码//devicePolicyManager.wipeData(flags);擦出数据devicePolicyManager.lockNow();//一键锁频}}
清单文件代码,这里主要是配置广播,因为继承类本身就是一个广播
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.sysweal.onekeylockscreen"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="9"        android:targetSdkVersion="18" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.sysweal.onekeylockscreen.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.sysweal.onekeylockscreen.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>


继承类,根据API说明,必须包含这个类,

import android.app.admin.DeviceAdminReceiver;public class MyAdmin extends DeviceAdminReceiver{}

在res目录下,新建xml文件夹,里面存放项目的一个文字,下面是一键锁频用到的,全部的为第二个:

<?xml version="1.0" encoding="utf-8"?><device-admin xmlns:android="http://schemas.android.com/apk/res/android" >    <uses-policies>        <force-lock />    </uses-policies></device-admin>

<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>

当然完成到上面这个还没有结束,因为类装载后,必须在设备中:设置-安全-激活当前的应用,这里可以做延伸,完成激活提示

激活代码:

/** * 一件激活 */public void OneKeyJiHuo(View view) {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,"开启后可以锁定屏幕。不开启这个功能扣200块钱");startActivity(intent);}


取消激活:

/** * 取消激活 */public void unintall(View view){// 指定要激活的组件ComponentName mDeviceAdminSample = new ComponentName(this,MyAdmin.class);devicePolicyManager.removeActiveAdmin(mDeviceAdminSample);// <action android:name="android.intent.action.VIEW" />//         <action android:name="android.intent.action.DELETE" />//         <category android:name="android.intent.category.DEFAULT" />//         <data android:scheme="package" />Intent intent = new Intent();intent.setAction("android.intent.action.DELETE");intent.addCategory("android.intent.category.DEFAULT");intent.setData(Uri.parse("package:"+getPackageName()));startActivity(intent);}




0 0
原创粉丝点击