1

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

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

  • 没有更多的电话图标,除了在设置 > 应用程序 > 全部
  • 如果我打电话给它,它在主叫方响起,但电话根本没有反应......
  • 但是状态蜂窝图标表明它具有 3G 网络。

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

4

1 回答 1

2

我找到了自己的答案。

关键是使用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
            }
        }
于 2015-01-30T20:19:35.757 回答