CN102147725B - 一种Android中支持双摄像头的方法 - Google Patents

一种Android中支持双摄像头的方法 Download PDF

Info

Publication number
CN102147725B
CN102147725B CN 201110076732 CN201110076732A CN102147725B CN 102147725 B CN102147725 B CN 102147725B CN 201110076732 CN201110076732 CN 201110076732 CN 201110076732 A CN201110076732 A CN 201110076732A CN 102147725 B CN102147725 B CN 102147725B
Authority
CN
China
Prior art keywords
camera
android
xml
version
need
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 201110076732
Other languages
English (en)
Other versions
CN102147725A (zh
Inventor
童波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rockchip Electronics Co Ltd
Original Assignee
Fuzhou Rockchip Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuzhou Rockchip Electronics Co Ltd filed Critical Fuzhou Rockchip Electronics Co Ltd
Priority to CN 201110076732 priority Critical patent/CN102147725B/zh
Publication of CN102147725A publication Critical patent/CN102147725A/zh
Application granted granted Critical
Publication of CN102147725B publication Critical patent/CN102147725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephone Function (AREA)
  • Stored Programmes (AREA)
  • Studio Devices (AREA)

Abstract

本发明提供了一种简单高效的Android 2.1版本中支持双摄像头的方法,可以应用于使用该系统并需要双摄像头支持的智能手机、平板电脑等电子产品。包括如下步骤:增加偏好设置资源;应用获取系统权限;增加配置文件键值对;硬件抽象层获取设置;应用监听并改变设置。本发明通过利用Android系统现有的数据存储机制和属性系统,既能实现对Android 2.1版本的双摄像头的支持,也无需改动原有的框架代码,实现起来非常方便和高效。而且这种实现方法的原理机制在Android的主流版本都是支持的,因此不受目前的Android版本的限制,乃至在后续的版本中仍然可以继续得到使用。

Description

一种Android中支持双摄像头的方法
【技术领域】
本发明涉及移动终端操作系统,具体是指一种Android中支持双摄像头的方法。
【背景技术】
来自中国互联网络信息中心发布的统计数据显示,截至目前,我国通过手机上网的人数已经达到2.77亿,使用手机上网的网民比例已经攀升至网民总数的65.9%,这些数字都预示了移动互联时代的全面到来。
2010年上半年,随着苹果公司推出具有划时代意义的iPad,平板电脑成为市场上备受瞩目的移动终端,与智能手机共同成为移动互联网时代的重要的助推力量。
随着3G时代的到来,网络传输速度相比之前的2G(GSM)时代得到了大幅提升。智能移动终端的功能也变得更加丰富,应用更加多元化,由原来单一的语音通话和简单的音视频功能,发展成为集语音通话、网络接入、影视娱乐、数据服务为一体的综合性个人手持终端设备。拍照功能在移动终端中已经得到了广泛普及,几乎成为了“标配”。而在3G时代,视频通话功能成为最令人期待的应用之一。因此,在终端设备上实现对双摄像头的支持也是迫切的需求,后置较大像素摄像头用于改分辨率拍照和录制,前置较小分辨率摄像头用于视频通话的视频采集。
智能手机操作系统市场中,作为早期发展起来的Symbian和WindowMobile操作系统,已现下滑趋势。而新兴的Android凭借出色的用户体验和自身的优势,表现出巨大的发展潜力。随着Google不断更新Android操作系统以适应平板电脑设备需要,三星P1000和联想乐pad等基于Android系统的平板电脑也不断在市场上受到追捧。
在Google发布的Android 2.1版本(eclair)的原生系统里,默认只支持一个摄像头,并没有加入对双摄像头的支持。因此针对使用此版本系统的移动终端设备,需要在原生系统中用简洁高效的方法来满足这种需求。
Android 2.3版本在2010年年底发布,其中已经在框架层已经支持双摄像头。但是Android 2.1版本在2010年年初发布,对于追随Android系统的硬件厂商直接升级到2.3版本时间有限,开发成本也很高。另外,在移植2.3版本的双摄像头框架部分到2.1版本上,修改框架部分较多,工作量较大。
【发明内容】
本发明所要解决的技术问题在于提供一种简单高效的Android 2.1版本中支持双摄像头的方法,可以应用于使用该系统并需要双摄像头支持的智能手机、平板电脑等电子产品。
本发明采用以下技术方案解决上述技术问题:
一种Android2.1版本中支持双摄像头的方法,包括如下步骤:
步骤一:增加偏好设置资源:
$CAM_PACK/res/xml/camera_preferences.xml中记录了需要记录的一些配置参数的字符串和数组资源,实现双摄像头只要在原基础上增加一个新参数-当前正在使用的摄像头的朝向,来表明当前正在使用的是双摄像头中的哪一个,为当前使用摄像头的朝向信息添加新的ListPreference作为其中一个配置;其中,数组资源需要在$CAM_PACK/res/values/arrays.xml中定义,字符串资源需要在$CAM_PACK/res/values/strings.xml中定义,需要其他语言支持的话,还要在其他语言的values文件夹中定义对应的字符串;
步骤二:应用获取系统权限:
对于camera模块的应用层client端和硬件抽象层service端所运行的进程可以通过ps命令进行查看,通过ps-w命令可以看到进程的UID号,将应用中的AndroidManifest.xml文件中默认的sharedUserId改为″android.uid.system″使得Camera应用运行在system进程下,UID固定为1000;然后,在property_service.c中的鉴权数组property_perms[]中增加成员:{″app_camera.″,AID_SYSTEM,0},后在Camera应用进程中设置app_camera.为前缀的属性;
步骤三:增加配置文件键值对:
Camera应用中开始时初始化一个SharedPreferences实例,将在应用私用数据存储路径的shared_prefs目录下创建默认的com.android.camera_preferences的xml文件,用于存储camera_preferences.xml中定义的配置参数,对于新增加的双摄像头朝向配置参数,需要在该xml文件中利用SharedPreferences的API增加相应的键值对;这个操作只要在检测到配置参数未设置的情况下去添加,否则的话,就保留上一次的设置;
步骤四:硬件抽象层获取设置:
在camera硬件抽象层中,首先都要打开Linux中对应的设备节点,即/dev/videoX,通过property_get函数来读取当前的摄像头朝向属性,根据读取到的值来判断是为前置或是后置摄像头,并打开相应设备;
步骤五:应用监听并改变设置:
在Camera应用中实现了SharedPreferences的监听接口,这个接口对应的实现函数负责监听preference中参数设置与用户交互后的改动,在这个函数里判断如果摄像头的朝向设置有改变时,就设置对应的属性;在设置改变后,需要发送Intent重新启动Camera应用,此时在硬件抽象层打开设备之前,读取到的摄像头朝向就是在应用层设置过的属性值。
本发明的优点在于:通过利用Android系统现有的数据存储机制和属性系统,既能实现对Android 2.1版本的双摄像头的支持,也无需改动原有的框架代码,实现起来非常方便和高效。而且这种实现方法的原理机制在Android的主流版本都是支持的,因此不受目前的Android版本的限制,乃至在后续的版本中仍然可以继续得到使用。
【附图说明
下面参照附图结合实施例对本发明作进一步的描述。
图1是本发明实现双摄像头支持后的应用运行流程图。
【具体实施方式】
根据Android 2.1系统现有架构,实现双摄像头支持后的应用运行流程图如图1所示。
按照图1所示的流程,实现双摄像头支持主要有以下几个步骤:
步骤一:增加偏好设置资源
SharedPreferences是Android中存储简单数据的一个工具类。它提供一种轻量级的数据存储方式,通过用键值对(key-value)的方式把简单数据类型存储在应用程序的私有目录下(/data/data/$PACKAGE_NAME/shared_prefs/)定义的xml文件中。
Android 2.1 Camera应用(package/apps/Camera目录,以下标示为$CAM_PACK)中已经采用了这种方法来记录camera的一些配置参数,实现双摄像头只要在原基础上增加一个新参数——当前正在使用的摄像头。双摄像头分后置和前置,据此可以使用摄像头的朝向(facing)来表明当前正在使用的是双摄像头中的哪一个。
$CAM_PACK/res/xml/camera_preferences.xml中记录了需要记录的一些配置参数的字符串和数组资源,可以参考已有的设置,为当前使用摄像头的朝向信息添加新的ListPreference作为其中一个配置。
其中,数组资源需要在$CAM_PACK/res/values/arrays.xml中定义,字符串资源需要在$CAM_PACK/res/values/strings.xml中定义,需要其他语言支持的话,还要在其他语言的values文件夹中定义对应的字符串,如中文需要在$CAM_PACK/res/values-zh-rCN/strings.xml中定义。
步骤二:应用获取系统权限
Android属性系统中的每个属性都有一个名称和值,他们都是字符串格式,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程都可以get属性。而set属性需要相应的权限。
获取和设置属性的API为在system/core/init/property_service.c中定义的property_get和property_get在system/core/init/property_service.c。其中property_set中在check_perms函数中需要进行鉴权,即设置属性的进程需要相应的权限。
对于camera模块的应用层(client端)和硬件抽象层(service端)所运行的进程可以通过ps命令进行查看,例如:
app_6 1389 692 318928 18584 ffffffff afe0da04 S com.android.camera
通过ps-w命令可以看到进程的UID号,app_6为10006。Android系统中某些系统进程的UID是固定的,而每个应用默认是运行在自己独立的一个进程,而且进程UID是不固定的。但是Android提供了定义共享进程sharedUserId的方法以使应用进程可以共享同一个进程,而且可以与system进程共享。而system进程的UID在Android中是固定为1000的。因此,可以将应用中的AndroidManifest.xml文件中默认的sharedUserId改为″androiduid.system″使得Camera应用运行在system进程下,UID固定为1000。
然后,在property_service.c中的鉴权数组property_perms[]中增加成员:{″app_camera.″,AID_SYSTEM,0}就可以在Camera应用进程中设置app_camera.为前缀的属性。
步骤三:增加配置文件键值对
Camera应用中开始时初始化一个SharedPreferences实例,将在应用私用数据存储路径的shared_prefs目录下创建默认的com.android.camera_preferences的xml文件,用于存储camera_preferences.xml中定义的配置参数,对于新增加的双摄像头朝向配置参数,需要在该xml文件中利用SharedPreferences的API增加相应的键值对。这个操作只要在检测到配置参数未设置的情况下去添加,否则的话,就保留上一次的设置。
步骤四:硬件抽象层获取设置
在camera硬件抽象层中,尽管这部分代码不尽相同,但是首先都要打开Linux中对应的设备节点,即/dev/videoX。通过property_get函数来读取当前的摄像头朝向属性,根据读取到的值来判断是为前置或是后置摄像头,并打开相应设备。
另外需要说明的是,在做上述摄像头切换选择之前需要确保系统中有两个摄像头可以使用(即两个对应设备节点),这可以通过探测/dev/videoX设备节点的方法来实现。
步骤五:应用监听并改变设置
在Camera应用中实现了SharedPreferences的监听接口,这个接口对应的实现函数负责监听preference中参数设置与用户交互后的改动。在这个函数里判断如果摄像头的朝向设置有改变时,就设置对应的属性。
在设置改变后,需要发送Intent重新启动Camera应用,此时在硬件抽象层打开设备之前,读取到的摄像头朝向就是在应用层设置过的属性值。通过Android的这种属性系统设置来实现应用层和硬件抽象层的关联,便于用户界面和底层硬件的交互。
本发明利用Android 2.1原生系统中已有的特性,用一种简单高效的方式实现了Android 2.1系统上对双摄像头的支持。该方法避免了对原有框架代码的改变,采用的机制原理是Android主流版本所支持的,有较强的适应性。

Claims (1)

1.一种Android中支持双摄像头的方法,其特征在于:包括如下步骤:
步骤一:增加偏好设置资源:
$CAM_PACK/res/xml/camera_preferences.xml中记录了需要记录的一些配置参数的字符串和数组资源,实现双摄像头只要在原基础上增加一个新参数,该参数表示当前正在使用的摄像头的朝向,来表明当前正在使用的是双摄像头中的哪一个,为当前使用摄像头的朝向信息添加新的ListPreference作为其中一个配置;其中,数组资源需要在$CAM_PACK/res/values/arrays.xml中定义,字符串资源需要在$CAM_PACK/res/values/strings.xml中定义;
步骤二:应用获取系统权限:
对于camera模块的应用层client端和硬件抽象层service端所运行的进程可以通过ps命令进行查看,通过ps–w命令可以看到进程的UID号,将应用中的AndroidManifest.xml文件中默认的sharedUserId改为"android.uid.system"使得Camera应用运行在system进程下,UID固定为1000;然后,在property_service.c中的鉴权数组property_perms[]中增加成员:{"app_camera.",AID_SYSTEM,0},后在Camera应用进程中设置app_camera.为前缀的属性;
步骤三:增加配置文件键值对:
Camera应用中开始时初始化一个SharedPreferences实例,将在应用私用数据存储路径的shared_prefs目录下创建默认的com.android.camera_preferences的xml文件,用于存储camera_preferences.xml中定义的配置参数,对于新增加的双摄像头朝向配置参数,需要在该xml文件中利用SharedPreferences的API增加相应的键值对;这个操作只要在检测到配置参数未设置的情况下去添加,否则的话,就保留上一次的设置;
步骤四:硬件抽象层获取设置:
在camera硬件抽象层中,首先都要打开Linux中对应的设备节点,即/dev/videoX,通过property_get函数来读取当前的摄像头朝向属性,根据读取到的值来判断是为前置或是后置摄像头,并打开相应设备;
步骤五:应用监听并改变设置:
在Camera应用中实现了SharedPreferences的监听接口,这个接口对应的实现函数负责监听preference中参数设置与用户交互后的改动,在这个函数里判断如果摄像头的朝向设置有改变时,就设置对应的属性;在设置改变后,需要发送Intent重新启动Camera应用,此时在硬件抽象层打开设备之前,读取到的摄像头朝向就是在应用层设置过的属性值。
CN 201110076732 2011-03-29 2011-03-29 一种Android中支持双摄像头的方法 Active CN102147725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110076732 CN102147725B (zh) 2011-03-29 2011-03-29 一种Android中支持双摄像头的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110076732 CN102147725B (zh) 2011-03-29 2011-03-29 一种Android中支持双摄像头的方法

Publications (2)

Publication Number Publication Date
CN102147725A CN102147725A (zh) 2011-08-10
CN102147725B true CN102147725B (zh) 2013-09-18

Family

ID=44422002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110076732 Active CN102147725B (zh) 2011-03-29 2011-03-29 一种Android中支持双摄像头的方法

Country Status (1)

Country Link
CN (1) CN102147725B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455093A (zh) * 2012-06-04 2013-12-18 深圳市凯利华电子有限公司 平板电脑
CN103017770B (zh) * 2012-11-30 2016-03-02 深圳市航盛电子股份有限公司 基于北斗和陀螺仪的安卓系统下组合导航数据适配方法
CN103677848B (zh) * 2013-12-27 2018-11-16 厦门雅迅网络股份有限公司 一种基于Android的摄像头控制方法
CN103793246B (zh) * 2014-01-22 2017-09-05 深圳Tcl新技术有限公司 协调摄像头资源的方法及系统
CN104133711B (zh) * 2014-08-07 2017-08-15 深圳市元征科技股份有限公司 基于Android系统的摄像头安全切换方法
CN104333687B (zh) * 2014-11-28 2017-12-19 广东欧珀移动通信有限公司 双摄像头装置及其终端设备
CN104699503A (zh) * 2015-02-28 2015-06-10 深圳市同洲电子股份有限公司 一种替换安卓系统中函数的执行逻辑的方法及装置
CN105578008A (zh) * 2015-12-23 2016-05-11 福建星网智慧科技股份有限公司 一种基于android终端提高USB2.0摄像头高分辨率高帧率的方法
CN105738921A (zh) 2016-01-29 2016-07-06 北京小米移动软件有限公司 获取位置信息的方法及装置
CN107818015B (zh) * 2017-10-25 2021-08-06 Oppo广东移动通信有限公司 一种系统资源调用方法及相关设备
CN109828797A (zh) * 2019-01-17 2019-05-31 平安科技(深圳)有限公司 抓拍服务进程管理方法及相关设备
CN112612536B (zh) * 2020-12-15 2022-11-18 麒麟软件有限公司 基于Linux系统中Android应用程序控制摄像的方法及装置
CN116260920B (zh) * 2023-05-09 2023-07-25 深圳市谨讯科技有限公司 多数据混合控制方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841603A (zh) * 2010-05-12 2010-09-22 中兴通讯股份有限公司 一种实现自动调整照片方向的方法及移动终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100194860A1 (en) * 2009-02-03 2010-08-05 Bit Cauldron Corporation Method of stereoscopic 3d image capture using a mobile device, cradle or dongle

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841603A (zh) * 2010-05-12 2010-09-22 中兴通讯股份有限公司 一种实现自动调整照片方向的方法及移动终端

Also Published As

Publication number Publication date
CN102147725A (zh) 2011-08-10

Similar Documents

Publication Publication Date Title
CN102147725B (zh) 一种Android中支持双摄像头的方法
US10721679B2 (en) Method for transmitting and receiving signals in proximity network and electronic device thereof
CN109076331B (zh) 电子设备和电子设备的控制方法
US20170235435A1 (en) Electronic device and method of application data display therefor
WO2018068657A1 (zh) 界面移动方法、装置、智能终端、服务器和操作系统
CN106465460B (zh) 用于支持嵌入式uicc上的globalplatform使用的方法和设备
CN105578446B (zh) 使用多个订户身份模块的移动通信
US9152527B2 (en) Method and apparatus for identifying wireless peripherals and their states at a docking host for wireless docking
US20150333971A1 (en) Method and device for managing processes of application program
US9338642B2 (en) Method and apparatus for processing application program, and mobile terminal therefor
US11030143B2 (en) System for sharing content between electronic devices, and content sharing method for electronic device
CN109428911A (zh) 设备控制方法、装置、终端设备和操作系统
CN104935744A (zh) 一种验证码显示方法、验证码显示装置及移动终端
CN114503091A (zh) 发现5g边缘的媒体能力的方法
WO2015051705A1 (zh) 兼容支持手持设备安卓应用程序的多apn并发方法及其系统
US9872180B2 (en) Method for managing network access and electronic device therefor
CN103699635B (zh) 信息处理方法和装置
CN110933075B (zh) 服务调用方法、装置、电子设备及存储介质
WO2020233556A1 (zh) 一种通话内容处理方法和电子设备
US10284614B2 (en) Method for downloading contents of electronic device and electronic device thereof
CN101583204B (zh) 一种实现通用联合电路卡多应用文件管理的方法及系统
WO2016169426A1 (zh) 一种视频播放方法及装置
CN110209344A (zh) 迁移对象存储的方法、装置和计算机可读存储介质
Pan et al. Component-based mobile web application of cross-platform
WO2014176955A1 (zh) 移动终端配置方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 350000 Fuzhou Gulou District, Fujian, software Avenue, building 89, No. 18

Patentee after: FUZHOU ROCKCHIP ELECTRONICS CO., LTD.

Address before: 350000 Fuzhou Gulou District, Fujian, software Avenue, building 89, No. 18

Patentee before: Fuzhou Rockchip Semiconductor Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 350000 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China

Patentee after: Ruixin Microelectronics Co., Ltd

Address before: 350000 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China

Patentee before: Fuzhou Rockchips Electronics Co.,Ltd.