第三方应用调用前摄失败,导致原生相机的后摄挂掉

复制代码
 

第一次分析出现问题:以为是调用前摄,检测不到后摄所致,导致误导了许久
仔细查找才发现:相机前摄的参数错误,当前app获取不到这么大的参数
Camera2-Parameters: set: Requested preview size 1080 x 1440 is not supported
11-22 17:45:42.034826 12613 12671 E CameraManager: SET_PARAMETERS Fail e = java.lang.RuntimeException: setParameters failed

既然 1080 x 1440 不支持,那就想办法让其支持!

第三方应用纷纷也停止运行,再次打开相机,提示""由于安全政策的限制,相机已停止运行""

/vendor/mediatek/proprietary/custom/mt6789/hal/imgsensor_metadata/imx219_mipi_raw/config_static_metadata_project.h

找到对应机器的前摄

// android.stats.info
//------------------------------------------------------------------------------
//==========================================================================
//==========================================================================
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_WITH_DURATIONS)//new hidden
//==============================================8M 4:3
CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_BLOB, MINT64)
CONFIG_ENTRY_VALUE(3264, MINT64)
CONFIG_ENTRY_VALUE(2448, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)

CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_RAW16, MINT64)
CONFIG_ENTRY_VALUE(3264, MINT64)
CONFIG_ENTRY_VALUE(2448, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)

CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_YCbCr_420_888, MINT64)
CONFIG_ENTRY_VALUE(3264, MINT64)
CONFIG_ENTRY_VALUE(2448, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(50000000, MINT64)
CONFIG_ENTRY_VALUE(0 , MINT64)
//==============================================5M 4:3
CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_BLOB, MINT64)
CONFIG_ENTRY_VALUE(2560, MINT64)
CONFIG_ENTRY_VALUE(1920, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)

CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_RAW16, MINT64)
CONFIG_ENTRY_VALUE(2560, MINT64)
CONFIG_ENTRY_VALUE(1920, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)

CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_YCbCr_420_888, MINT64)
CONFIG_ENTRY_VALUE(2560, MINT64)
CONFIG_ENTRY_VALUE(1920, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(50000000, MINT64)
CONFIG_ENTRY_VALUE(0 , MINT64)
//==============================================3M 4:3
CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_BLOB, MINT64)
CONFIG_ENTRY_VALUE(1920, MINT64)
CONFIG_ENTRY_VALUE(1440, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)

CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_RAW16, MINT64)
CONFIG_ENTRY_VALUE(1920, MINT64)
CONFIG_ENTRY_VALUE(1440, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)

CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_YCbCr_420_888, MINT64)
CONFIG_ENTRY_VALUE(1920, MINT64)
CONFIG_ENTRY_VALUE(1440, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(50000000, MINT64)
CONFIG_ENTRY_VALUE(0 , MINT64)
//==============================================1M 4:3
//*/
CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_BLOB, MINT64)
CONFIG_ENTRY_VALUE(1280, MINT64)
CONFIG_ENTRY_VALUE(960, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)

CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_RAW16, MINT64)
CONFIG_ENTRY_VALUE(1280, MINT64)
CONFIG_ENTRY_VALUE(960, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)
CONFIG_ENTRY_VALUE(33333333, MINT64)

CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_YCbCr_420_888, MINT64)
CONFIG_ENTRY_VALUE(1280, MINT64)
CONFIG_ENTRY_VALUE(960, MINT64)
CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64)
CONFIG_ENTRY_VALUE(50000000, MINT64)
CONFIG_ENTRY_VALUE(0 , MINT64)
//*/
CONFIG_METADATA_END()
//==========================================================================

//----------------------------------------------------------------------------

再后面添加最小前摄像素去适应第三方app大小的像素即可;估摸着以前的像素参数不适配第三方,得改为适配的相机参数

在此之前,该问题纠结了如此之久,迟迟找不到具体原因,导致相机调用崩溃,最后在耐心的log查找中,慢慢的大胆去猜想去做,去编译,去修改,终于皇天不负有心人,哦了

相关推荐
花千树-010几秒前
MCP HTTP 传输详解:比 SSE 简单,但有一个意外的坑
java·agent·sse·function call·ai agent·mcp·harness
花千树-0101 分钟前
三个 Agent 并行调研:用 concurrent 节点构建并发-汇聚式旅游规划助手
java·langchain·agent·function call·multi agent·mcp·harness
2501_913061343 分钟前
网络原理之HTTP
java·网络·面试
yaaakaaang3 分钟前
二十、状态模式
java·状态模式
三维频道4 分钟前
从物理断裂到数字孪生:三维 DIC 如何重构汽车轻量化的“成形边界”?
人工智能·数码相机·dic技术与数字孪生·成形极限flc测定·汽车轻量化制造·cae冲压仿真闭环·高强钢与复合材料
LiuYaoheng6 分钟前
【Android】Handler 全面解析
android
华盛AI8 分钟前
Lovable开发平台,生成安卓和iOS都能运行的原生App方案(用Kotlin或者Switf编写)
android·ios·kotlin
Fate_I_C8 分钟前
Kotlin 基础语法快速回顾
android·开发语言·kotlin
一只大袋鼠9 分钟前
MyBatis 进阶实战(四): 连接池、动态 SQL、多表关联(一对多 / 多对一 / 多对多)
java·开发语言·数据库·sql·mysql·mybatis
Digitally10 分钟前
如何通过简单步骤将iPhone上的eSIM转移到安卓手机
android·智能手机·iphone