CN109451472A - Android智能设备上多蓝牙芯片的动态管理方法 - Google Patents

Android智能设备上多蓝牙芯片的动态管理方法 Download PDF

Info

Publication number
CN109451472A
CN109451472A CN201811168738.3A CN201811168738A CN109451472A CN 109451472 A CN109451472 A CN 109451472A CN 201811168738 A CN201811168738 A CN 201811168738A CN 109451472 A CN109451472 A CN 109451472A
Authority
CN
China
Prior art keywords
bluetooth
android
chip
service
different
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.)
Granted
Application number
CN201811168738.3A
Other languages
English (en)
Other versions
CN109451472B (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201811168738.3A priority Critical patent/CN109451472B/zh
Publication of CN109451472A publication Critical patent/CN109451472A/zh
Application granted granted Critical
Publication of CN109451472B publication Critical patent/CN109451472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了Android智能设备上多蓝牙芯片的动态管理方法,包括如下步骤:步骤一、蓝牙芯片型号的获取;步骤二、不同蓝牙模块的加载:首先预置蓝牙芯片对应的蓝牙应用和协议栈。其次,在系统核心进程启动完毕后,通过判断前面在init中设置的标志,指定跨进程启动对应蓝牙芯片的蓝牙应用服务。最后,通过JNI去获取硬件抽象层的ID,在获取硬件抽象层接口中,根据init中设置的标志,查找对应蓝牙协议栈的库文件,并把库文件的路径和名字传入Load方法,这样就完成了蓝牙芯片对应蓝牙协议栈的加载。本发明可以实现一套Android整机镜像版本兼容多个蓝牙芯片,提升了用户体验。

Description

Android智能设备上多蓝牙芯片的动态管理方法
技术领域
本发明涉及一种蓝牙芯片的管理方法,具体涉及一种Android智能电视上多蓝牙芯片的动态管理方法,属于Android智能设备技术领域。
背景技术
当前Android智能电视基本标配了蓝牙功能,因为蓝牙在低功耗,数据传输方面有一定优势。但是当前支持Android智能电视的蓝牙芯片有不同的厂商,其采用的蓝牙应用服务,蓝牙协议栈以及蓝牙设备驱动都有芯片厂商自己的特殊定制,无法实现一套蓝牙代码兼容不同蓝牙厂商的芯片,导致Android系统编译生成的镜像文件只能与某一个特定的蓝牙芯片绑定。
现有的连接方式存在如下问题:一是无法实现蓝牙芯片的更改,如用户希望使用其他的蓝牙接收器就无法实现。二是大大增加了Android整机系统镜像文件的维护工作量,如采用一个新的蓝牙芯片,就需要针对这个芯片重新维护一套Android整机系统镜像文件。
本发明就是针对在Android智能电视上蓝牙芯片无法动态管理加载的问题,提出了一个有效的解决方法。
发明内容
本发明的目的就是解决现有技术中Android智能电视无法动态兼容多个蓝牙芯片的问题,提供一种Android智能设备上多蓝牙芯片的动态管理方法。
本发明主要是通过在Android智能电视上,动态识别接入的蓝牙芯片,然后根据蓝牙芯片的型号,在Android运行的不同阶段,选择合适的时机运行加载蓝牙芯片对应的蓝牙设备驱动、蓝牙协议栈以及蓝牙应用服务,从而实现对多蓝牙芯片的动态管理。
在具体介绍本发明的技术方案之前,对本发明涉及到的相关技术内容进行说明如下:
Android智能电视的蓝牙启动机制:
Android系统的内核启动完成后,首先会创建init进程,在此进程中Android系统会通过 insmod的方式将指定蓝牙设备驱动程序载入内核,完成蓝牙芯片相关初始化工作。然后在 Android系统核心进程启动完毕后,在进程System_server中通过跨进程的通讯方式启动指定蓝牙应用服务。最后在蓝牙应用服务初始化的过程中,通过Android Hardware动态获取蓝牙的Module ID,把蓝牙协议栈加载起来并完成相关初始化工作,这样蓝牙功能就成功打开,可以提供相关的蓝牙服务。
通过上面的描述,可以知道如果想要做到能够根据不同蓝牙芯片动态加载对应的蓝牙模块,关键就在于能够在加载运行蓝牙设备驱动、蓝牙协议栈以及蓝牙应用服务之前,能够通过合适的方法识别不同的蓝牙芯片型号,并且根据型号的不同,采取合适的方法加载不同的代码模块。
本发明具体是这样实现的:
Android智能设备上多蓝牙芯片的动态管理方法,包括如下步骤:
步骤一、蓝牙芯片型号的获取
Android系统的内核启动完成以后,在insmod蓝牙设备驱动之前。首先通过Linux内核提供的标准方法,获取当前内核识别到的USB设备的Product ID和Vendor ID,然后在init 进程中通过对PID和VID的判断,来加载当前内核识别到的蓝牙芯片的设备驱动文件。
程序加载完成之后,通过Android提供的系统属性服务,设置一个系统属性作为蓝牙芯片型号的标志,以便后续的程序可以简单的通过这个标志来获取当前接入的蓝牙芯片型号。
步骤二、不同蓝牙模块的加载
首先为了运行加载不同的蓝牙应用服务和蓝牙协议栈,需要预置蓝牙芯片对应的蓝牙应用和协议栈。由于系统只支持运行一个蓝牙进程,所以必须对不同的蓝牙应用和协议栈进行区分,蓝牙应用采用定义不同的匹配动作Action,让上层应用获取蓝牙服务主服务的时候通过定义的字符串启动对应蓝牙应用,其中涉及的其他服务的名字不变。蓝牙协议栈通过在 Android编译文件中指定不同的名字,然后把指定的名字通过前面的系统属性服务存储在系统中,这样就可以在硬件抽象层加载协议栈的时候根据系统属性进行区别。
其次,在系统核心进程启动完毕后,通过判断前面在init中设置的标志,指定跨进程启动对应蓝牙芯片的蓝牙应用服务,这样上层的应用接口就和当前接入芯片的蓝牙应用服务实现了对应。
最后,在蓝牙应用服务初始化的过程中,会通过JNI去获取硬件抽象层的ID,需要在获取硬件抽象层接口中,根据init中设置的标志,查找系统Hardware目录下的对应蓝牙协议栈的库文件,找到对应的蓝牙库文件后,把库文件的路径和名字传入Load方法,这样就完成了蓝牙芯片对应蓝牙协议栈的加载。
通过以上的步骤,就可以动态根据接入的蓝牙芯片不同,从而使能对应蓝牙功能。
在步骤一之前,需要预先将不同蓝牙芯片的驱动程序、蓝牙协议栈,以及蓝牙应用服务程序预置在系统中,具体包括:
为不同蓝牙芯片的蓝牙设备驱动程序和蓝牙协议栈定制不同的名字,然后在对驱动程序和蓝牙协议栈进行命名,比如在Makefile中按照btusb_xxx.ko(xxx代表厂商型号)的格式命名驱动程序,在Android.mk中按照bluetooth,xxx.so的格式命名蓝牙协议栈。
对蓝牙应用服务程序进行编译,编译出包名与Action完全不一样的应用,从而使得系统 bind指定的蓝牙应用服务程序。
本发明具有如下有益效果:
解决了当前Android智能电视无法根据接入蓝牙芯片动态加载使能的问题。采用此方案可以实现一套Android整机镜像版本兼容多个蓝牙芯片,大大减少软件移植的工作量。也可以让用户在蓝牙接收器上有了选择,提升了用户体验。同样,本申请还适用于除了Android 智能电视之外的其他Android智能设备上。
附图说明
图1为系统获取蓝牙芯片型号的流程
图2为系统动态加载蓝牙各个模块实施流程
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
本实施实例采用以上的发明方案,应用于Android 6.0智能电视机芯平台具体实施方式是:
1、定制不同芯片厂家的蓝牙设备驱动程序、蓝牙协议栈的名字,在Makefile中按照 btusb_xxx.ko(xxx代表厂商型号)的格式命名驱动程序,在Android.mk中按照bluetooth,xxx.so 的格式命名蓝牙协议栈。
2、由于Android Framework层是通过bindservice启动蓝牙应用服务,而蓝牙应用服务是一个apk文件,蓝牙应用的编译需要依赖Android SDK,然后通过Android标准Makefile文件进行编译。由于系统服务的启动可以通过包名来区别,所以为了让Android的系统启动服务程序可以获取到不同的蓝牙应用服务,所以我们需要编译出两个或多个包名和Action完全不一样的应用,这样才能让系统bind指定的蓝牙应用服务程序。
3、Android系统启动init进程之后,在init脚本文件中通过lsusb的方式向系统查询当前所有接入的USB设备,然后在内核返回的查询结果中通过PID和VID进行筛选,找到当前实际接入的蓝牙芯片,然后根据设备驱动程序的名字insmod对应的驱动。最后通过Android系统属性的方式设置一个蓝牙系统属性来表示当前接入设备的型号,具体如附图1所示。
4、在系统核心进程System_server中启动BluetoothManagerService服务并完成初始化工作,当收到系统开机完毕的广播后,首先通过判断dev设备节点来确定蓝牙设备驱动程序是否加载正确,然后通过系统属性获取当前蓝牙芯片型号,最后向bindservice方法传入指定的包名和Action,这样就通过跨进程的方式启动了蓝牙芯片对应的蓝牙应用服务。
5、上层以bindservice的方式启动蓝牙应用服务,蓝牙应用服务初始化的过程中会通过 JNI的方式调用hw_get_module接口来获取硬件抽象层的ID,在硬件抽象层中我们根据init 设置的系统属性来选择对应的device_id,最后把device_id传入load蓝牙协议栈的方法,系统会根据device_id加载对应的蓝牙库文件。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。

Claims (2)

1.Android智能设备上多蓝牙芯片的动态管理方法,其特征在于包括如下步骤:
步骤一、蓝牙芯片型号的获取
Android系统的内核启动完成以后,在insmod蓝牙设备驱动之前;首先通过Linux内核提供的标准方法,获取当前内核识别到的USB设备的Product ID和Vendor ID,然后在init进程中通过对PID和VID的判断,来加载当前内核识别到的蓝牙芯片的设备驱动文件;
程序加载完成之后,通过Android提供的系统属性服务,设置一个系统属性作为蓝牙芯片型号的标志,以便后续的程序可以简单的通过这个标志来获取当前接入的蓝牙芯片型号;
步骤二、不同蓝牙模块的加载
首先为了运行加载不同的蓝牙应用服务和蓝牙协议栈,需要预置蓝牙芯片对应的蓝牙应用和协议栈;由于系统只支持运行一个蓝牙进程,所以必须对不同的蓝牙应用和协议栈进行区分,蓝牙应用采用定义不同的匹配动作Action,让上层应用获取蓝牙服务主服务的时候通过定义的字符串启动对应蓝牙应用,其中涉及的其他服务的名字不变;蓝牙协议栈通过在Android编译文件中指定不同的名字,然后把指定的名字通过前面的系统属性服务存储在系统中,这样就可以在硬件抽象层加载协议栈的时候根据系统属性进行区别;
其次,在系统核心进程启动完毕后,通过判断前面在init中设置的标志,指定跨进程启动对应蓝牙芯片的蓝牙应用服务,这样上层的应用接口就和当前接入芯片的蓝牙应用服务实现了对应;
最后,在蓝牙应用服务初始化的过程中,会通过JNI去获取硬件抽象层的ID,需要在获取硬件抽象层接口中,根据init中设置的标志,查找系统Hardware目录下的对应蓝牙协议栈的库文件,找到对应的蓝牙库文件后,把库文件的路径和名字传入Load方法,这样就完成了蓝牙芯片对应蓝牙协议栈的加载。
2.根据权利要求1所述Android智能设备上多蓝牙芯片的动态管理方法,其特征在于:
在步骤一之前,需要预先将不同蓝牙芯片的驱动程序、蓝牙协议栈,以及蓝牙应用服务程序预置在系统中,具体包括:
为不同蓝牙芯片的蓝牙设备驱动程序和蓝牙协议栈定制不同的名字,然后在对驱动程序和蓝牙协议栈进行命名,比如在Makefile中按照btusb_xxx.ko的格式命名驱动程序,在Android.mk中按照bluetooth,xxx.so的格式命名蓝牙协议栈,其中xxx代表厂商型号;
对蓝牙应用服务程序进行编译,编译出包名与Action完全不一样的应用,从而使得系统bind指定的蓝牙应用服务程序。
CN201811168738.3A 2018-10-08 2018-10-08 Android智能设备上多蓝牙芯片的动态管理方法 Active CN109451472B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811168738.3A CN109451472B (zh) 2018-10-08 2018-10-08 Android智能设备上多蓝牙芯片的动态管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811168738.3A CN109451472B (zh) 2018-10-08 2018-10-08 Android智能设备上多蓝牙芯片的动态管理方法

Publications (2)

Publication Number Publication Date
CN109451472A true CN109451472A (zh) 2019-03-08
CN109451472B CN109451472B (zh) 2021-04-06

Family

ID=65545904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811168738.3A Active CN109451472B (zh) 2018-10-08 2018-10-08 Android智能设备上多蓝牙芯片的动态管理方法

Country Status (1)

Country Link
CN (1) CN109451472B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110366039A (zh) * 2019-07-12 2019-10-22 四川长虹电器股份有限公司 一种Android系统下不同蓝牙模组的兼容方法
CN110460984A (zh) * 2019-08-16 2019-11-15 深圳市中擎创科技有限公司 基于分布式存储的多蓝牙控制方法、系统、终端及存储
CN111443952A (zh) * 2020-03-16 2020-07-24 珠海全志科技股份有限公司 提升基于uart接口的蓝牙打开速度的方法及系统
CN111954039A (zh) * 2020-07-02 2020-11-17 深圳市华曦达科技股份有限公司 机顶盒蓝牙配置方法、装置、电子设备及存储介质
CN112311853A (zh) * 2020-09-28 2021-02-02 北京沃东天骏信息技术有限公司 一种数据同步方法、装置、设备及计算机可读存储介质
CN112684319A (zh) * 2020-12-16 2021-04-20 海光信息技术股份有限公司 一种芯片检验追踪方法及装置
CN113099433A (zh) * 2021-04-14 2021-07-09 深圳泰科晶显科技有限公司 一种基于安卓系统的动态的兼容不同厂商的wifi及蓝牙模块的方法
CN115567665A (zh) * 2022-09-22 2023-01-03 四川长虹电器股份有限公司 一种智能电视高频头自适应方法
WO2023240560A1 (zh) * 2022-06-16 2023-12-21 北京小米移动软件有限公司 支持多协议栈的蓝牙通信方法、装置、电子设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598960A (zh) * 2014-10-31 2015-05-06 厦门盛华电子科技有限公司 能够认证、加解密的手机蓝牙key及其认证、加解密方法
US20160234696A1 (en) * 2015-02-09 2016-08-11 Qualcomm Technologies International, Ltd. Detection of coexistence in devices using multiple wireless communication technologies
CN105893038A (zh) * 2016-03-30 2016-08-24 大连理工大学 一种安卓蓝牙协议栈向Mint17系统移植的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598960A (zh) * 2014-10-31 2015-05-06 厦门盛华电子科技有限公司 能够认证、加解密的手机蓝牙key及其认证、加解密方法
US20160234696A1 (en) * 2015-02-09 2016-08-11 Qualcomm Technologies International, Ltd. Detection of coexistence in devices using multiple wireless communication technologies
CN105893038A (zh) * 2016-03-30 2016-08-24 大连理工大学 一种安卓蓝牙协议栈向Mint17系统移植的方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110366039A (zh) * 2019-07-12 2019-10-22 四川长虹电器股份有限公司 一种Android系统下不同蓝牙模组的兼容方法
CN110460984A (zh) * 2019-08-16 2019-11-15 深圳市中擎创科技有限公司 基于分布式存储的多蓝牙控制方法、系统、终端及存储
CN110460984B (zh) * 2019-08-16 2022-07-01 中科微电技术(深圳)有限公司 基于分布式存储的多蓝牙控制方法、系统、终端及存储
CN111443952A (zh) * 2020-03-16 2020-07-24 珠海全志科技股份有限公司 提升基于uart接口的蓝牙打开速度的方法及系统
CN111443952B (zh) * 2020-03-16 2023-04-07 珠海全志科技股份有限公司 提升基于uart接口的蓝牙打开速度的方法及系统
CN111954039A (zh) * 2020-07-02 2020-11-17 深圳市华曦达科技股份有限公司 机顶盒蓝牙配置方法、装置、电子设备及存储介质
CN112311853A (zh) * 2020-09-28 2021-02-02 北京沃东天骏信息技术有限公司 一种数据同步方法、装置、设备及计算机可读存储介质
CN112311853B (zh) * 2020-09-28 2024-05-24 北京京东拓先科技有限公司 一种数据同步方法、装置、设备及计算机可读存储介质
CN112684319A (zh) * 2020-12-16 2021-04-20 海光信息技术股份有限公司 一种芯片检验追踪方法及装置
CN113099433A (zh) * 2021-04-14 2021-07-09 深圳泰科晶显科技有限公司 一种基于安卓系统的动态的兼容不同厂商的wifi及蓝牙模块的方法
WO2023240560A1 (zh) * 2022-06-16 2023-12-21 北京小米移动软件有限公司 支持多协议栈的蓝牙通信方法、装置、电子设备及介质
CN115567665A (zh) * 2022-09-22 2023-01-03 四川长虹电器股份有限公司 一种智能电视高频头自适应方法

Also Published As

Publication number Publication date
CN109451472B (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
CN109451472A (zh) Android智能设备上多蓝牙芯片的动态管理方法
US10609112B2 (en) Method, server and system for converging desktop application and web application
CN107431651B (zh) 一种网络服务的生命周期管理方法及设备
CN102439564B (zh) 在Linux容器中启动应用程序的方法和系统
CN109144478B (zh) 组件框架系统以及组件框架系统的使用方法
CN102110009B (zh) 一种在虚拟化平台中部署应用的方法及虚拟平台管理器
US11861341B2 (en) Node selection method and apparatus
US7739656B2 (en) Generating asynchronous interfaces and methods from synchronous interfaces and methods
CN104111827B (zh) 应用程序匹配方法及装置
CN103853586B (zh) 一种在uefi层实现无线网卡驱动的方法
WO2010118615A1 (zh) 一种增强型近场通信终端、智能卡及其通信方法
CN105516154B (zh) 应用于SEAndroid系统的安全策略配置方法及装置
US20130159392A1 (en) System and method for providing virtual device
CN109101335A (zh) 扩展主机设备的功能
CN112905337A (zh) 软硬件混合部署的MySQL集群调度方法及装置
CN106230889B (zh) 移动应用业务组件资源管理方法及系统
WO2020199543A1 (zh) 适用于混合模式应用的发布升级的方法及装置、智能设备
CN106802805B (zh) 一种适用服务器管理的应用服务管理方法及装置
CN103917951B (zh) 应用调用的方法及操作系统、浏览器
CN113220305B (zh) 一种线索对接方法、装置、电子设备及存储介质
CN105843881A (zh) 一种图片处理url映射方法和装置
CN114519582A (zh) 服务的预热方法、预热装置和服务系统
US9501311B2 (en) Apparatus and method for multicore emulation based on dynamic context switching
CN113760374B (zh) 一种处理器的绑定方法、装置及电子设备
CN115794927B (zh) 业务功能扩展方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant