我想编写一个汽车应用程序,它应该在用户驾驶时简单地显示 map 。我正在使用 Android Studio 4.0.1 和 Kotlin 进行开发。 为了创建一个模拟器进行测试,我使用 Android Studio 4.2 Beta 1 下载汽车系统镜像,因为在 4.0.1 中没有可用的汽车系统镜像。
我坚持要让这个应用程序“分散注意力优化”,所以不幸的是,该应用程序仍然被黑屏覆盖,并显示文本“您在驾驶时无法使用此功能”。
当我遵循指南([https://source.android.com/devices/automotive/driver_distraction/guidelines][1])时,似乎我只需将以下元数据添加到manifest.xml(我只有一项 Activity ):
<activity>
...
<meta-data android:name="distractionOptimized" android:value="true"/>
...
</activity>
当然,我还向manifest.xml 文件中的manifest-tag 请求以下所需的权限(除其他外):
...
<uses-permission android:name="android.car.permission.CAR_UX_RESTRICTIONS_CONFIGURATION" />
<uses-permission android:name="android.car.permission.CAR_DRIVING_STATE"/>
...
以及我传递给 requestPermissions(...) 函数的权限数组
val PERMISSIONS_ARRAY = arrayOf(
...
Car.PERMISSION_CAR_UX_RESTRICTIONS_CONFIGURATION,
Car.PERMISSION_CAR_DRIVING_STATE,
...
)
requestPermissions(PERMISSIONS_ARRAY, 0)
在onRequestPermissionsResult(...)中我发现这两个权限被拒绝。但在应用程序首次启动时,甚至没有提示/要求用户授予该权限。此外,在设置中也无法授予应用程序这些权限。在后面的代码中 getActiveRestrictions() 总是返回 255,这意味着所有限制都处于 Activity 状态,对吗?另一个迹象表明应用程序不允许自行处理驾驶员分心,因此操作系统通过根本不显示应用程序来处理它......
我做错了什么?我可能会错过什么?有人有想法吗?
最佳答案
在 list 中将 Activity 标记为 DO 是不够的,还必须从受信任的来源(例如 Play 商店)下载/安装它,否则 CarPackageManagerService 将不允许应用程序在任何受限制的驾驶状态下显示.
关于android - 如何获得驾驶员分心优化的许可?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668981/