第34讲 Camera Native FW 之clientPackageName和 AppOpsManager逻辑

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

更多资源:

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

clientPackageName 赋值逻辑

clientPackageName 赋值逻辑

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

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

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

Log关键词: CameraService::connect call

AppOpsManager 处理逻辑

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

  • 运行时的访问权限控制

  • 运行时的访问权限跟踪

AppOpsManager 处理逻辑

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

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

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

AppOpsManager 处理逻辑

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

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

AppOpsManager 处理逻辑

AppOpsManager 处理逻辑

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Android Camera Native Framework