android - Device Policy Manager - 重置密码 - Android 3.0 问题

标签 android android-3.0-honeycomb device-admin

我在我的 Android 应用程序中使用 Device Policy Manager,但我遇到了 Honeycomb 设备的问题。尝试调用 resetPassword 时抛出异常。 Froyo 或 Gingerbread 的情况并非如此,因为它们都可以正常工作。

错误是:

java.lang.RuntimeException: Unable to start receiver Package.Name.Test: java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/secure from pid=x, uid=y requires android.permission.WRITE_SETTINGS

我的安卓代码如下:

DevicePolicyManager mDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);

if ((mDPM.getActiveAdmins() != null) && (mDPM.isAdminActive(new ComponentName(context, DeviceAdmin.class)))) {
    mDPM.resetPassword(extra, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
    mDPM.lockNow();
} else {
    Log.d(TAG, "Could not lock because device admin not enabled");
}

问题发生在:

mDPM.resetPassword(extra, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);

我的 Device_Admin.xml 是:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <force-lock />
        <wipe-data />
        <reset-password />
    </uses-policies>
</device-admin>

就像我说的,设备管理员在 Froyo 和 Gingerbread 设备上工作得很好,尽管我确实遇到了一些用户使用不同键盘锁的问题,例如 Droid X 和 HTC Sense。这个问题与时间有关。当我调用 lockNow 时,设备将关闭屏幕,但 HTC Sense 或 MotoBlur 直到在“设置”、“安全”、“在此之后锁定手机”中设置的时间才会真正锁定键盘锁。

任何帮助都会很棒!我最近刚在 I/O 大会上拿到了一款蜂窝平板电脑,还没有在这个设备上测试过这个应用程序,但我在市场网站上看到了运行 3.0 的 Xoom 用户的错误。还没有看到任何 3.1 设备。

最佳答案

我也为此苦苦挣扎。该解决方案也列在您的一个链接中,但我也会在这里提及它,以防它对其他人有帮助。

  • 如果设备是全新的(或恢复出厂设置),代码将如您所述失败。

  • 如果用户只使用设置菜单输入一次密码,相同的代码就会以某种方式开始工作并继续工作。

确实是一个非常奇怪的错误!!

关于android - Device Policy Manager - 重置密码 - Android 3.0 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6085580/

相关文章:

android - 不兼容的Gradle版本-Android

android - 在 Android 蜂窝操作系统中,我可以将状态栏移动到顶部吗?

android - Android Honeycomb 3.0 中的文本高亮显示

android - 设备所有者管理员/DevicePolicyManager,可以在 Android 上自动打开移动数据和数据漫游吗?

java - android studio 中带有 setImageDrawable 方法的 NullPointerException

android - 尝试绘制用户加载的位图

android - 在 Android 上使用 URI 调用默认媒体播放器

android - OnCreate 在 Honeycomb 上的 onActivityResult 之后运行?

android - 检测正在从电话/设备管理员中删除的应用程序

android - 位置更新在设备管理员/托管工作配置文件模式下不起作用