Android15系统中访问Camera设备有两条框架路径,即最初的CameraService这个手机、平板走的那个框架路径和Automotive车机走的那个框架路径。
对于手机这种我们常用的娱乐设备来说我们不默认,系统相机都用过,我们知道相机有前后置之分,那从AOSP角度来说这个朝向是怎么回事呢?
CameraService框架中对Camera朝向的定义
Camera Service框架中对Camera朝向定义是相对于设备屏幕来说的,和屏幕同侧是前置(Front),屏幕背面是后置(Rear)。
"android.lens.facing"这个metadata定义朝向,可选值有三个:
- ANDROID_LENS_FACING_FRONT, (内置)前置摄像头
- ANDROID_LENS_FACING_BACK (内置)后置摄像头
- ANDROID_LENS_FACING_EXTERNAL 外接摄像头
Android15 Camera框架层将external摄像头认为front摄像头,通常相机应用的预览功能会对前置相机做镜像(参考Google原生Camera应用程序Camera2)。
Automotive框架中对Camera朝向的定义
Automotive框架中对Camera朝向定义是相对于驾驶舱来说的,
"android.automotive.lens.facing"这个metadata定义朝向,可选值:
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_OTHER
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_FRONT
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_REAR
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_LEFT
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_RIGHT
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_OTHER
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_LEFT
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_CENTER
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_RIGHT
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_LEFT
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_CENTER
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_RIGHT
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_LEFT
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_CENTER
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_RIGHT