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