第34讲 Camera Native FW 之clientPackageName和 AppOpsManager

2024年11月04日 第34讲 Camera Native FW 之clientPackageName和 AppOpsManager逻辑 极客笔记

本讲是Android Camera Native Framework专题的第34讲,我们介绍Camera Native FW的clientPackageName和 AppOpsManager逻辑

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera 星球ID: 17296815
Wechat 极客笔记圈

clientPackageName 赋值逻辑

  1. Open camera时,上层会传递Client package name到CameraService

  2. 如果是Native Client,传递的package name为空字符串

  3. connectHelper是API1和API2通用的逻辑

Log关键词: CameraService::connect call

AppOpsManager 处理逻辑

AppOpsManager是一个应用程序执行某个操作权限的管理类,有两个目的

  • 运行时的访问权限控制

  • 运行时的访问权限跟踪

  • 针对MODE_ERRORED和MODE_IGNORED两种Mode做了处理

  • 如果是Client是native service,则会返回MODE_IGNORED

  • 如果Camera Privacy Enabled,这里趋向于继续让Open Camera正常执行(不返回-EACCES),后续做mute动作

  • 针对MODE_ERRORED、MODE_ALLOWED和MODE_IGNORED三种Mode做了处理

  • Block camera是会直接关闭Camera,mute camera是输出test pattern的图像

本文链接:http://so.lmcjl.com/news/16961/

展开阅读全文