以编程方式设置Android所有者密码

时间:2016-05-31 08:17:59

标签: android

假设我有root权限,有没有办法以编程方式设置所有者密码/ pin而无需任何用户交互?我必须使用的API级别是17或18。

1 个答案:

答案 0 :(得分:1)

设备管理员代码
将其添加到xml文件夹中:

<强> device_admin.xml

<?xml version="1.0" encoding="utf-8"?>
<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 />-->
    <!--<disable-keyguard-features />-->
</uses-policies>

这些是您可以在应用中使用的不同政策。取消注释您需要的任何一个。您可以随时重置密码和强制锁定。

您的活动内容:

DevicePolicyManager mDPM;
ComponentName mAdminName;
.......
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
mAdminName = new ComponentName(this, MyAdminReceiver.class);

使用此代码检查您的应用是否具有设备管理功能,如果不是直接用户到相应的页面。

if (!mDPM.isAdminActive(mAdminName)) {
                // try to become active – must happen here in this activity, to get result
                Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
                intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                        mAdminName);
                intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Your Explanation for requesting these Admin Capabilities.");
                startActivityForResult(intent, REQUEST_ENABLE);
            }

最后锁定你的手机:

//Reset Password
mDPM.resetPassword(newPassword, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
//Lock Phone
mDPM.lockNow();

DONE