我正在开发一个适用于 android12 的应用程序。 该应用程序是 kiosk 模式并使用 startLockTask。
要使用应用程序中的标准 Android 投射功能, 调用投射设置屏幕。
startActivity(new Intent(ACTION_CAST_SETTINGS));
我可以显示设置屏幕,并且可以连接到 FireTV, 我可以连接到 Chromecast,但无法连接到 Chromecast。 连接仍在进行中。
我发现一条确认消息“开始录制还是投射?”连接时显示,但我的应用程序上没有显示。
当我在连接之前执行 stopLockTask 时,它确实会出现, 有什么办法让它在使用startLockTask时出现吗?
这实际上是 Android 的 kiosk 模式(锁定任务)模式和系统对话框的已知限制。但是,您可以通过向允许的活动添加强制转换权限来处理此问题。
您可以在设备所有者设置中将特定系统 UI 组件列入白名单。您需要使用 DevicePolicyManager 来进行设置。
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
String[] packages = {
"com.google.android.gms",
*// Google Play Services*
"com.google.android.apps.chromecast.app"
*// Cast related*
};
dpm.setLockTaskPackages(admin, packages);
请检查并更新这是否适合您。