首页 > 解决方案 > 在 Android 5.0 (Lollipop) 中使用 setLockTaskPackages() 字符串数组参数以 startLockTask 模式打开其他应用程序不起作用

问题描述

Motive:为 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) 设备中运行良好,这是我现在要做的挑战。

根据android 文档, API 级别 21setLockTaskPackages将支持棒棒糖 5.0,但我不知道我在这里错过了什么以使代码在 5.0 中工作。

感谢您花时间和帮助解决这个问题。

标签: androidandroid-5.0-lollipopkioskkiosk-modeandroid-screen-pinning

解决方案


推荐阅读