一键锁屏和一键卸载套路

一键锁屏和一键卸载套路

一键锁屏

清单文件

<!-- 设备管理员 -->
<receiver
    android:name=".receiver.SjfdAdminReceiver"
    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>

当前是设备管理员

public class SjfdAdminReceiver extends DeviceAdminReceiver {

}

device_ admin_sample 文件是在res 目录创建的xml 文件夹下的一个xml 文件,具体的代码如下。

<device-admin xmlns:android="http://schemas.android.com/apk/res/android" >

    <uses-policies>

        <!-- 重置密码 -->
        <reset-password />
        <!-- 锁屏 -->
        <force-lock />
        <!-- 擦除数据 -->
        <wipe-data />
    </uses-policies>

</device-admin>

public class MainActivity extends Activity {

    private static final int REQUEST_CODE_ENABLE_ADMIN = 3;
    private DevicePolicyManager mDpm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
        // 将当前用户变成设备管理员
        ComponentName who = new ComponentName(this, MyAdmin.class);

        boolean active = mDpm.isAdminActive(who);

        if (!active) { // 不是设备管理员就激活
            Intent intent = new Intent(
                    DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, who);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    getString(R.string.add_admin_extra_app_text));

            startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN);
        } else {// 是就锁屏
            mDpm.lockNow();
            finish();
        }

    }

    // 锁屏API
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE_ENABLE_ADMIN) {
            if (resultCode == Activity.RESULT_OK) {// 进入页面确定
                // 激活操作
                mDpm.lockNow();// 锁屏api
                finish();
            } else {
                // 没有激活
                finish();
            }
        }   
        super.onActivityResult(requestCode, resultCode, data);
    }   
}

一键卸载

public class UninstallActivity extends Activity {

    private DevicePolicyManager mDpm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
        // 将当前用户变成设备管理员
        ComponentName who = new ComponentName(this, MyAdmin.class);
        // 卸载API
        // 判断设备管理员是否激活
        if (mDpm.isAdminActive(who)) {
            // 激活
            // 解除激活,卸载
            mDpm.removeActiveAdmin(who);
            uninstall();
        } else {
            // 未激活
            // 直接卸载
            uninstall();
        }
    }

    private void uninstall() {
        Intent intent = new Intent();
        intent.setAction("android.intent.action.DELETE");
        intent.addCategory("android.intent.category.DEFAULT");
        intent.setData(Uri.parse("package:" + getPackageName()));
        startActivity(intent);

        finish();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值