CarOccupantZoneService 和 CarOccupantZoneManager 是 Android 11 中新增的两个类,主要用来处理 zones 和 Display 的映射关系,zones 指的是车内的座位区域,一般分为司机和乘客,乘客也会根据位置细分前后排,左右,中间,从这个两个类的引入看起来 google 已经想到了车内每一个座位可能对应一块屏幕。
源码位置:/packages/services/Car/car-lib/src/android/car/CarOccupantZoneManager.java
CarOccupantZoneManager 中定义了屏幕和车内乘员的类型。
/**
* API来获取车内显示器和用户的信息
*/
public class CarOccupantZoneManager extends CarManagerBase {
// 显示类型未知。在某些系统中,显示可能只是公开显示而没有任何附加信息,这样的显示将被视为未知。
public static final int DISPLAY_TYPE_UNKNOWN = 0;
// 用户正在交互的主显示器。默认情况下,用户的UI将启动到此显示。
// DEFAULT_DISPLAY将始终具有此类型。但这种类型可以有多个,因为每个乘客都可以有自己的主显示器。
public static final int DISPLAY_TYPE_MAIN = 1;
// 仪表盘显示。这可能只存在于驱动程序。
public static final int DISPLAY_TYPE_INSTRUMENT_CLUSTER = 2;
// 抬头显