You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Automotive OS 13中AndroidX读取车速权限添加无效求助

Android Automotive OS 13 AVD读取车速权限问题排查

问题描述

在运行Android Automotive OS 13的AVD中,尝试通过AndroidX读取车辆车速信息,使用的极简代码如下:

AutomotiveCarHardwareManager(context).carInfo.addSpeedListener(Executors.newSingleThreadExecutor()) {}

运行时抛出权限缺失异常:

java.lang.RuntimeException: java.lang.SecurityException: Missed permission: android.car.permission.CAR_SPEED

已在AndroidManifest.xml中添加对应权限,但报错无变化(其他通用权限可正常生效):

<uses-permission android:name="android.car.permission.CAR_INFO"/>
<uses-permission android:name="android.car.permission.CAR_SPEED"/>

另外无法在代码中导入android.car.permission.CAR_SPEED,查看报错相关源码文件也存在大量导入错误,疑问:是否必须自定义构建才能获取这类车辆特权信息?

完整异常栈:

FATAL EXCEPTION: main
Process: com.example.autodemo, PID: 11953
java.lang.RuntimeException: java.lang.SecurityException: Missed permission: android.car.permission.CAR_SPEED
at androidx.car.app.utils.RemoteUtils.lambda$dispatchCallFromHost$0(RemoteUtils.java:155)
at androidx.car.app.utils.RemoteUtils$$ExternalSyntheticLambda1.run(Unknown Source:6)
at androidx.car.app.utils.ThreadUtils.runOnMain(ThreadUtils.java:39)
at androidx.car.app.utils.RemoteUtils.dispatchCallFromHost(RemoteUtils.java:147)
at androidx.car.app.utils.RemoteUtils.lambda$dispatchCallFromHost$1(RemoteUtils.java:186)
at androidx.car.app.utils.RemoteUtils$$ExternalSyntheticLambda2.run(Unknown Source:8)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7924)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.SecurityException: Missed permission: android.car.permission.CAR_SPEED
at androidx.car.app.hardware.common.PropertyManager.checkPermissions(PropertyManager.java:310)
at androidx.car.app.hardware.common.PropertyManager.submitRegisterListenerRequest(PropertyManager.java:105)
at androidx.car.app.hardware.info.AutomotiveCarInfo.addSpeedListener(AutomotiveCarInfo.java:188)
at com.example.autodemo.InfoScreen.onGetTemplate(InfoScreen.kt:69)
at androidx.car.app.Screen.getTemplateWrapper(Screen.java:361)
at androidx.car.app.ScreenManager.getTopTemplate(ScreenManager.java:279)
at androidx.car.app.AppManager$1$$ExternalSyntheticLambda1.dispatch(Unknown Source:2)
at androidx.car.app.utils.RemoteUtils.lambda$dispatchCallFromHost$0(RemoteUtils.java:150)
at androidx.car.app.utils.RemoteUtils$$ExternalSyntheticLambda1.run(Unknown Source:6)
at androidx.car.app.utils.ThreadUtils.runOnMain(ThreadUtils.java:39)
at androidx.car.app.utils.RemoteUtils.dispatchCallFromHost(RemoteUtils.java:147)
at androidx.car.app.utils.RemoteUtils.lambda$dispatchCallFromHost$1(RemoteUtils.java:186)
at androidx.car.app.utils.RemoteUtils$$ExternalSyntheticLambda2.run(Unknown Source:8)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7924)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

问题原因与解决方式

  • 权限类型特殊性:android.car.permission.CAR_SPEED属于签名级权限,这类权限仅授予与系统签名一致的应用,普通第三方应用即使在Manifest中声明也无法获取权限。
  • AVD限制:默认的Android Automotive OS AVD面向普通应用开发,未提供获取这类敏感车辆数据的权限通道,即便自定义构建AVD,也需要匹配系统签名才能拿到权限。
  • 代码导入问题:无法导入android.car.permission.CAR_SPEED是因为该权限类属于系统框架层API,普通应用的SDK中不包含,只有系统应用或基于系统源码构建的应用才能访问。

替代方案

如果仅用于开发测试,可以尝试:

  1. 使用Android Automotive提供的模拟车辆数据工具:通过adb shell命令手动注入车速等模拟数据,或者利用Car App Library中的测试类生成模拟数据。
  2. 基于Android Automotive源码构建自定义系统镜像:将应用签名加入系统白名单,或修改权限配置放开CAR_SPEED权限,但该方式仅适用于定制化系统开发场景。

内容的提问来源于stack exchange,提问作者Doot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 23:10:18