在Android 5.0(Lollipop)中使用setLockTaskPackages()字符串数组参数在startLockTask模式下打开其他应用程序不起作用

时间:2018-07-05 12:10:34

标签: android android-5.0-lollipop kiosk kiosk-mode android-screen-pinning

动机:为5.0和6.0+设备构建KIOSK应用

方法如下: adb以运行“ dpm set-device-owner”命令。

通过使用startLockTask();,我的应用成功进入了授权的密码模式。

我还有另一个挑战,那就是我必须从KIOSK应用程序中打开其他已安装的应用程序。我通过构造字符串包数组并将其设置为DPM的setLockTaskPackages来实现此目的,下面是代码示例

mDevicePolicyManager.setLockTaskPackages(mAdminComponentName, getKioskApps());

private String[] getKioskApps() {
    return (new String[]{getPackageName(),
            "com.test.sampleappone",
            "com.test.sampleapptwo"});
} 

6.0 +设备上使用上述代码,我可以成功导航已安装的 sampleAppOne (com.test.sampleappone) sampleAppTwo (com.test.sampleapptwo)在我的设备中&下面是导航代码。

private void openSampleAppOne() {

        Intent intentInv = new Intent();
        intentInv.setComponent(new ComponentName("com.test.sampleappone", "com.test.sampleappone.MainActivity"));
        intentInv.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intentInv);
}

上面的代码在6.0 (marshmallow) & 7.0 (Nougat)设备上运行完美,但在5.0 (lollipop)设备上运行不理想,这是我现在要做的挑战。

根据{{​​3}} setLockTaskPackages

将得到 API级别21 的支持,该级别是lollipop 5.0,但我不知道我在这里错过了什么来使代码在其中工作5.0。

感谢您的时间和帮助来解决此问题。

0 个答案:

没有答案