android - 在 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 中工作。
感谢您花时间和帮助解决这个问题。
解决方案
推荐阅读
- r - 是否有 R 函数可以快速将文本转换为日期?
- excel - VBA slicercache 导出 PDF 循环分解 Excel
- flutter - 如何以正确的方式从 SharedPreferences 获取数据
- c# - 我应该在我的 Task.Run() 中使用 await 吗?
- react-native - 如何在 React Native 中增加快餐栏高度并调整文本大小?
- image - 在颤动的图像上绘制形状
- shell - 根据另一个键值更改 JSON 中对象的值 - shell
- html - 如何使用反应在打字稿中添加样式?
- php - 如何从 id_item 将元素移动到另一个数组
- python - 消息从本地 python 传递到 chrome 扩展