CN106412656B - Android智能设备快速连接蓝牙的方法 - Google Patents

Android智能设备快速连接蓝牙的方法 Download PDF

Info

Publication number
CN106412656B
CN106412656B CN201610945276.6A CN201610945276A CN106412656B CN 106412656 B CN106412656 B CN 106412656B CN 201610945276 A CN201610945276 A CN 201610945276A CN 106412656 B CN106412656 B CN 106412656B
Authority
CN
China
Prior art keywords
bluetooth
android system
native
android
blue tooth
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
CN201610945276.6A
Other languages
English (en)
Other versions
CN106412656A (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 CN201610945276.6A priority Critical patent/CN106412656B/zh
Publication of CN106412656A publication Critical patent/CN106412656A/zh
Application granted granted Critical
Publication of CN106412656B publication Critical patent/CN106412656B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42206User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details
    • H04N21/42221Transmission circuitry, e.g. infrared [IR] or radio frequency [RF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Selective Calling Equipment (AREA)

Abstract

本发明涉及Android系统领域,公开了一种Android智能设备快速连接蓝牙的方法,解决Android系统未完成启动时蓝牙遥控器不可用的问题,同时解决重启系统下蓝牙功能不可用问题。本发明在Android系统根目录下的init.rc中注册native蓝牙服务,native蓝牙服务进程在开机时启动,完成对本机蓝牙模块和蓝牙协议栈的初始化,创建新进程监听GATT连接信息,并在蓝牙遥控器请求连接时自动连接,并在Android系统启动完成后,Android系统中Bluetooth进程查找到蓝牙服务程序并进行binder通讯,兼容android系统蓝牙流程。本发明适用于Android系统的智能电视。

Description

Android智能设备快速连接蓝牙的方法
技术领域
本发明涉及Android系统,特别涉及Android智能设备快速连接蓝牙的方法。
背景技术
传统的Android蓝牙协议栈,只有在Android系统完全启动之后才能正常使用。Android系统启动阶段,主要完成Android系统复位初始化启动和Android系统核心服务加载,然后可以运行、响应用户操作。目前大多数电视厂商的电视系统,在Android并未完成所有启动进程前,可以实现播放电视画面,但此时蓝牙遥控器并不能正常使用。此外在recovery系统下,蓝牙遥控器也无法正常使用。recovery系统是Android系统进行修复、升级的一个子系统,仅仅包含native蓝牙服务程序进程。由于Android系统中蓝牙的架构组成方式,蓝牙必须要在JAVA虚拟机运行后,由JAVA代码的进程启动。所以在recovery系统下无法使用蓝牙功能。
发明内容
本发明要解决的技术问题是:提供一种Android智能设备快速连接蓝牙的方法,解决Android系统未完成启动时蓝牙遥控器不可用的问题,同时解决recovery系统下蓝牙功能不可用问题。
为解决上述问题,本发明采用的技术方案是:在Android系统根目录下的init.rc中注册native蓝牙服务,native蓝牙服务进程在开机时启动,完成对本机蓝牙模块和蓝牙协议栈的初始化,创建新进程监听GATT连接信息,并在蓝牙遥控器请求连接时自动连接,并在Android系统启动完成后,Android系统中Bluetooth进程查找到蓝牙服务程序并进行binder通讯,兼容android系统蓝牙流程。
进一步的,本发明的具体步骤如下:
(1)创建一个采用c代码编译的native蓝牙服务程序;
(2)在Android系统根目录下的init.rc中注册一个蓝牙服务;当init进程解析rc文件时启动native蓝牙服务程序;
(3)native蓝牙服务程序启动后,加载蓝牙驱动,创建与原蓝牙服务程序通讯的binder,改造原蓝牙服务程序,由调用bluedroid改为和native蓝牙服务程序之间进行通讯;
(4)蓝牙驱动加载完成后,获取bluedroid的句柄,分别调用init和enable函数来初始化协议栈并打开蓝牙功能;
(5)新创建进程监听GATT连接信息,并在蓝牙遥控器请求连接时自动连接;
(6)Android上层应用调用蓝牙接口时,bluetooth服务与native蓝牙服务程序使用binder通讯,传递函数调用关系与参数;协议栈的回调函数也由native蓝牙服务经binder传递到bluetooth服务。
进一步的,步骤(3)使用shell脚本执行insmod命令加载蓝牙驱动,并检测是否加载完成采用Android系统标准的加载驱动方式。
进一步的,通过在代码中使用access函数查看蓝牙驱动节点文件是否存在,来判定驱动是否已经加载,并通过打开蓝牙驱动节点文件来判定驱动是否加载完成。
进一步的,如果蓝牙驱动设备节点文件不存在,等待一段时间再做检测,仍然不存在,则重新加载驱动;如果打开蓝牙驱动节点失败,则等待一段时间再次执行读取,尝试一定次数后仍然失败则结束当前进程,由init进程重启native蓝牙服务程序。
具体的,蓝牙遥控器请求连接时自动连接的方法为:第一次有蓝牙遥控器按键输出时,由协议栈完成自动回连,创建对应的input节点;当再次有蓝牙遥控器按键输出时,协议栈将数据发送到uhid,由kernel实现按键写入到对应的input节点。
本发明的有益效果是:本专利提出的快速连接蓝牙设备的方法,能够有效改善在智能电视等Android智能设备开机启动后,因为Android系统完全启动时间长,电视系统响应蓝牙遥控器操作等待时间长的问题,以及在在recovery系统下无法响应蓝牙遥控器的问题。
具体实施方式
下面以解决“Android智能电视启动快速开机TV界面显示,而Android系统未完成启动时蓝牙遥控器不可用的问题,同时解决recovery系统下蓝牙功能不可用问题”为例对本发明进行具体说明。
1、创建一个蓝牙native服务。由于Android系统启动初期完全运行c代码,为了提前实现对蓝牙设备的支持,需要使用c代码编译蓝牙服务程序,即蓝牙native服务;在init.rc文件中注册该服务,当init进程启动后,用fork函数创建蓝牙native服务进程。该进程为root组,无需专门设置优先级。Android系统启动过程中,解析到init.rc文件中蓝牙native服务相关字段时,开始运行native服务。蓝牙native服务进程运行后,使用shell脚本执行insmod命令加载蓝牙驱动,并检测是否加载完成采用Android系统标准的加载驱动方式。通过在代码中使用access函数查看蓝牙驱动节点文件是否存在,来判定驱动是否已经加载,并通过open蓝牙驱动节点文件来判定驱动是否加载完成。如果蓝牙驱动设备节点文件不存在,等待1秒再做检测,仍然不存在,则重新加载驱动;如果open蓝牙驱动节点失败,则等待500毫秒再次执行read,尝试20次后仍然失败则结束当前进程。由init进程重启蓝牙native服务。
2、当驱动加载完成后,初始化android系统的蓝牙协议栈。使用Android系统HAL方式,加载蓝牙协议栈库,获取bluedroid的句柄,分别调用init和enable函数来初始化协议栈,之后蓝牙协议栈就运行在蓝牙native服务进程中。
3、新创建线程侦听GATT连接信息。创建线程使用sBluetoothGattInterface->client->register_client,侦听GATT连接信息,当蓝牙遥控器有配对请求时,蓝牙协议栈可以将遥控器信息发送到侦听进程中,从而触发蓝牙遥控器配对。
4、当解析到连接请求是蓝牙遥控器时,触发蓝牙连接,进而启动蓝牙遥控器相关的服务程序,使蓝牙遥控器可以正常使用蓝牙连接。蓝牙遥控器发送的数据,由蓝牙协议栈通过UHID交给Linux内核处理,此过程是Android系统上蓝牙HID类型设备的标准流程。具体的来说,蓝牙自动连接可以采用如下方法:
第一次有蓝牙遥控器按键输出时,由协议栈完成自动回连,创建对应的input节点;当再次有蓝牙遥控器按键输出时,协议栈将数据发送到uhid,由kernel实现按键写入到对应的input节点。
5、Android系统启动完成后,Android系统中Bluetooth进程通过servicemanager查找到native蓝牙服务并进行binder通讯,保留Bluetooth进程所有函数,更改调用蓝牙协议栈库的方式为使用binder调用蓝牙native进程对应的函数,实现Bluetooth进程与native服务进程通讯,兼容android系统蓝牙流程。
Android上层应用调用蓝牙接口时,bluetooth服务与native蓝牙服务程序使用binder通讯,传递函数调用关系与参数;协议栈的回调函数也由native蓝牙服务经binder传递到bluetooth服务。
采用本方案后,蓝牙遥控器可以在android系统开机过程中提前7秒左右使用,避免开机时TV界面下遥控器不可操作;同时增加了recovery模式下对蓝牙遥控器的支持。
以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

Claims (5)

1.Android智能设备快速连接蓝牙的方法,其特征在于,在Android系统根目录下的init.rc中注册native蓝牙服务,native蓝牙服务进程在开机时启动,完成对本机蓝牙模块和蓝牙协议栈的初始化,创建新进程监听GATT连接信息,并在蓝牙遥控器请求连接时自动连接,并在Android系统启动完成后,Android系统中Bluetooth进程查找到native蓝牙服务程序并进行binder通讯,兼容android系统蓝牙流程;
具体步骤如下:
(1)创建一个采用c代码编译的native蓝牙服务程序;
(2)在Android系统根目录下的init.rc中注册一个蓝牙服务;当init进程解析rc文件时启动native蓝牙服务程序;
(3)native蓝牙服务程序启动后,加载蓝牙驱动,创建与原蓝牙服务程序通讯的binder,改造原蓝牙服务程序,由调用bluedroid改为和native蓝牙服务程序之间进行通讯;
(4)蓝牙驱动加载完成后,获取bluedroid的句柄,分别调用init和enable函数来初始化协议栈并打开蓝牙功能;
(5)新创建进程监听GATT连接信息,并在蓝牙遥控器请求连接时自动连接;
(6)Android上层应用调用蓝牙接口时,bluetooth服务与native蓝牙服务程序使用binder通讯,传递函数调用关系与参数;协议栈的回调函数也由native蓝牙服务经binder传递到bluetooth服务。
2.根据权利要求1所述的Android智能设备快速连接蓝牙的方法,其特征在于,步骤(3)使用shell脚本执行insmod命令加载蓝牙驱动,并检测是否加载完成采用Android系统标准的加载驱动方式。
3.根据权利要求2所述的Android智能设备快速连接蓝牙的方法,其特征在于,通过在代码中使用access函数查看蓝牙驱动节点文件是否存在,来判定驱动是否已经加载,并通过打开蓝牙驱动节点文件来判定驱动是否加载完成。
4.根据权利要求3所述的Android智能设备快速连接蓝牙的方法,其特征在于,如果蓝牙驱动设备节点文件不存在,等待一段时间再做检测,仍然不存在,则重新加载驱动;如果打开蓝牙驱动节点失败,则等待一段时间再次执行读取,尝试一定次数后仍然失败则结束当前进程,由init进程重启native蓝牙服务程序。
5.根据权利要求1所述的Android智能设备快速连接蓝牙的方法,其特征在于,蓝牙遥控器请求连接时自动连接的方法为:第一次有蓝牙遥控器按键输出时,由协议栈完成自动回连,创建对应的input节点;当再次有蓝牙遥控器按键输出时,协议栈将数据发送到uhid,由kernel实现按键写入到对应的input节点。
CN201610945276.6A 2016-10-26 2016-10-26 Android智能设备快速连接蓝牙的方法 Active CN106412656B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610945276.6A CN106412656B (zh) 2016-10-26 2016-10-26 Android智能设备快速连接蓝牙的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610945276.6A CN106412656B (zh) 2016-10-26 2016-10-26 Android智能设备快速连接蓝牙的方法

Publications (2)

Publication Number Publication Date
CN106412656A CN106412656A (zh) 2017-02-15
CN106412656B true CN106412656B (zh) 2019-08-06

Family

ID=58013622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610945276.6A Active CN106412656B (zh) 2016-10-26 2016-10-26 Android智能设备快速连接蓝牙的方法

Country Status (1)

Country Link
CN (1) CN106412656B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106714084B (zh) * 2016-12-19 2019-11-12 四川长虹电器股份有限公司 安卓智能设备快速连接蓝牙的方法
CN106921908B (zh) * 2017-03-24 2020-05-26 成都极米科技股份有限公司 一种蓝牙音箱实现方法和系统
CN107257540B (zh) 2017-07-04 2020-05-19 飞天诚信科技股份有限公司 一种实现蓝牙设备与移动设备配对的方法及装置
CN108319480A (zh) * 2018-02-01 2018-07-24 微鲸科技有限公司 蓝牙服务启动方法、装置及电子设备
CN111602344B (zh) 2018-08-01 2021-08-31 华为技术有限公司 一种蓝牙通信的方法及双模蓝牙终端
CN110136419A (zh) * 2019-05-31 2019-08-16 盘友圈(广州)科技有限公司 一种通过蓝牙遥控安卓设备的方法
CN112202969A (zh) * 2020-09-27 2021-01-08 珠海格力电器股份有限公司 一种蓝牙控制方法及装置
CN112309154A (zh) * 2020-09-28 2021-02-02 惠州市德赛西威智能交通技术研究院有限公司 一种Ble快速启动自动泊车出库方法,设备及汽车
CN113543104B (zh) * 2021-07-13 2023-10-24 深圳创维-Rgb电子有限公司 蓝牙通信方法、多媒体设备及存储介质
CN114554259A (zh) * 2022-01-14 2022-05-27 海信视像科技股份有限公司 控制设备、显示设备和设备信息获取方法
CN114173315B (zh) * 2022-02-14 2022-06-14 荣耀终端有限公司 蓝牙回连方法及终端设备
CN114980057B (zh) * 2022-06-21 2023-07-07 润芯微科技(江苏)有限公司 一种系统设备快速连接低功耗蓝牙设备的方法
CN115484343B (zh) * 2022-09-08 2024-06-21 上海术理智能科技有限公司 基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082969B (zh) * 2010-10-29 2013-03-27 广东星海数字家庭产业技术研究院有限公司 一种机顶盒外接蓝牙设备驱动系统
US9819986B2 (en) * 2012-08-17 2017-11-14 Flextronics Ap, Llc Automated DLNA scanning with notification
CN104572078A (zh) * 2014-12-16 2015-04-29 深圳市同洲电子股份有限公司 在Android修复模式下蓝牙功能的实现方法及系统
CN104469664A (zh) * 2014-12-26 2015-03-25 乐视致新电子科技(天津)有限公司 一种蓝牙设备信息处理方法和装置
CN105487887B (zh) * 2015-11-24 2021-01-08 惠州Tcl移动通信有限公司 一种蓝牙启动方法及蓝牙设备

Also Published As

Publication number Publication date
CN106412656A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN106412656B (zh) Android智能设备快速连接蓝牙的方法
WO2016206528A1 (zh) 一种实现Android系统下蓝牙自动回连的方法
CN109587005B (zh) 连接检测方法、装置、计算机设备以及可读存储介质
US11960869B2 (en) Android penetration method and device for implementing silent installation based on accessibility services
CN101594613A (zh) 终端设备及其升级的方法、系统
CN105607921B (zh) 一种基于Android系统的系统服务启动方法及系统
CN110750284B (zh) 一种应用快速启动方法、终端及计算机可读存储介质
WO2011009346A1 (zh) 手机应用程序的启动方法、装置和系统
CN111427594B (zh) 应用程序运行方法及装置
CN102984500A (zh) 一种实现多种视频监控设备兼容的方法、装置和系统
CN111277373B (zh) 一种服务器切换的控制方法、终端及存储介质
WO2021136200A1 (zh) 引导程序的加载方法、存储介质及嵌入式终端
US20130019020A1 (en) Smart wireless connection
CN112203132A (zh) 一种安卓智能电视开机快速回连蓝牙遥控器的方法
CN109067735B (zh) 通信协议的动态配置方法、无线通信装置和智能设备
CN103686380B (zh) 智能电视的应用管理方法和智能电视
CN113101670B (zh) 一种版本切换方法及装置
US11144370B2 (en) Communication method for virtual machines, electronic device, and non-transitory computer readable storage medium
CN113703914A (zh) 测试方法和测试系统
CN111427259A (zh) 一种机框插槽式的主备切换方法、智能设备及存储介质
WO2015184902A1 (zh) 一种智能分屏的并发处理方法及相应的智能终端
CN107491330B (zh) 一种提高嵌入式浏览器运行速度的方法
CN114020618B (zh) 一种基于fpga和dpdk的高可用测试方法及系统
JP4063573B2 (ja) デバイスドライバの組み込み・実行方式、組み込み・実行方法、及びプログラム
KR102414206B1 (ko) 오토사 표준 응용 소프트웨어 컴포넌트

Legal Events

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