Lollipop Device-Owner 应用程序中断 phone

Lollipop Device-Owner App breaks phone

多亏了such so answers,我才能够在我的智能phone 上设置设备所有者应用程序。这是一个非常基本的测试应用程序,用于启用/禁用屏幕固定模式...

无论如何,最后它起作用了,但有一个非常非常糟糕的缺点:我失去了对 phone 功能的所有访问权限

所有这些症状都很奇怪,让我想知道我的小型设备所有者应用程序是否在某个地方锁定了某些东西:有人对此有任何想法或经验吗?

我找到了自己的答案。

关键是使用 DevicePolicyManager.enableSystemApp 方法重新启用默认系统应用程序,因为出于某种原因,在安装时使用 NFC-triggered-device-owner-app 配置设备时,它会阻止进一步安装所有默认应用程序(至少在我的 Nexus 6 上)。

因此,一旦配置等。我列出了所有已卸载的应用程序并使用以下代码重新启用它们:

        DevicePolicyManager mDPM = (DevicePolicyManager) this.getSystemService(Context.DEVICE_POLICY_SERVICE);
        ComponentName mDeviceAdminRcvr = new ComponentName(this, DeviceAdminRcvr.class);

        List<PackageInfo> packs = getPackageManager().getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
        for (int i=0; i<packs.size(); i++) 
        {
            PackageInfo p = packs.get(i);
            try {
                mDPM.enableSystemApp(mDeviceAdminRcvr, p.packageName);
            } catch (Exception e) {
                // TODO: handle exception
            }
        }