Android平台下支持北斗模块的方法_2

文档序号:9809256阅读:来源:国知局
android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space), —层放在内核空间(Kernel Space)。
[0040]实施例二、android平台下支持北斗模块的方法。
[0041]下面结合图2对本实施例的方法进行详细说明。
[0042]图2为本发明实施例二的android平台下支持北斗模块的方法的流程示意图,如图2所不,本实施例的方法包括:所述android平台由Linux Kernel、Android Runtime、Librar ies> App Ii cat 1n Framework、Applicat1ns 5部分组成,包括嵌入式处理器和北斗导航芯片,其特征在于,包括以下步骤:
[0043]步骤201、由 app 发出定位申请 Locat1n Applicat1n ;
[0044]步骤202、启动一个定位服务线程 Locat1n Manager Service ;
[0045]步骤203、所述线程调用应用框架App Framework中的Locat1n provider服务Android_locat1n_Locat1nManagerProvider_XXX ;
[0046]步骤204、调用到JNI中,所述JNI获得Gpslnterface,并且传给接口一个回调函数的实现 Gpscallbacks gpsLocat1n ;
[0047]步骤205、调用 Gps 驱动 Gps Driver。
[0048]本实施例优选的,所述步骤204通过native方法调用到JNI中。
[0049]本实施例优选的,所述步骤204中获得的Gpslnterface由HAL层实现。
[0050]本实施例优选的,在使用北斗定位之前,取得Locat1n Manager的实例。
[0051]本实施例优选的,所述获得Locat1nManager的实例的方法是通过getSystemService方法的调用,获得位置提供者列表。
[0052]本实施例优选的,所述位置提供者列表包含北斗服务信息。
[0053]本实施例优选的,所述北斗服务信息包括获取:Locat1nMananger的getSystemService,获取最合适的provider的Criteria,注册监听器的requestLocat1nUpdates,获得经讳度表达的地址的Geocoder。
[0054]本实施例优选的,在HAL层的GPS.c驱动中的nmea_reader_parse函数根据NMEA打头的不同来分别增加判断语句判定是GPS还是北斗的NMEA协议信息。
[0055]本实施例优选的,GPS对于NMEA是用GP打头的卫星信息,北斗是基于BD打头的NMEA信息。
[0056]具体的,对于android北斗驱动来说主要的工作是实现HAL层编译生成一个叫做gps.***.so的动态库的代码。由app发出定位申请,此时会去启动一个定位服务线程,此线程会调用到App Framwork (应用框架)中的Locat1n provider服务,再通过native方法调用到 JNI (Java Native Interface, JAVA 本地调用)中,JNI 获得 Gpslnterface 并传给接口一个回调函数的实现,Gpslnterface就是由HAL层最主要实现。
[0057]要使用北斗定位,首先需要取得Locat1nManager的实例,在Android中,获得Locat1nManager的唯一方法是通过getSystemService方法的调用。通过使用Locat1nManager,可以获得一个位置提供者的列表。在一个特定的手持设备中,这个列表包含了一些北斗服务的信息。例如,getSystemService (获取:Locat1nMananger);Criteria (获取最合适的 provider) ;requestLocat1nUpdates (注册监听器);Geocoder (获得经纬度表达的地址)。也可以选择更强大、更精确、不带其他附加服务的北斗导航信息。
[0058]重点就是在已有GPS的框架上来实现对北斗导航模块的支持。NMEA是美国国家海洋电子协会(Nat1nal Marine Electronics Associat1n)为海用电子设备制定的标准格式,目前业已成了卫星导航设备统一的RTCM标准协议。基于两者的差别,GPS对于NMEA是用GP打头的卫星信息,比如$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等,而北斗是基于BD打头的NMEA信息,所以我们在HAL层的GPS.c驱动中的nmea_reader_parse函数可以根据上述的不同来分别增加判断语句判定是GPS还是北斗的NMEA协议信息。
[0059]本实施例提出了一种在Android系统中修改硬件抽象层的方法,来全面支持北斗卫星模块在终端设备上的实现,可以随意运行在支持Android系统的手机、移动终端、或是个人电脑等。
[0060]实施例三、android平台下支持北斗模块的方法的硬件连接。
[0061]如图3所示,北斗导航芯片UM220-1II N模块301的TXD、RXD管脚通过UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)通信接口连接嵌入式处理器302,这里具体选择的是Freescale的imx515,但一般嵌入式处理器也可以实现本发明的目的。
[0062]本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0063]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0064]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.android平台下支持北斗模块的方法,所述android平台由Linux Kernel、AndroidRunt ime > Librar ies> App Ii cat 1n Framework、Applicat1ns 5 部分组成,包括嵌入式处理器和北斗导航芯片,其特征在于,包括以下步骤: 步骤(I)、由app发出定位申请; 步骤(2)、启动一个定位服务线程; 步骤(3)、所述线程调用应用框架App Framework中的Locat1n provider服务; 步骤(4)、调用到JNI中,所述JNI获得GpsInterface,并且传给接口一个回调函数的实现; 步骤(5)、调用Gps驱动。2.根据权利要求1所述的android平台下支持北斗模块的方法,其特征在于:所述步骤⑷通过native方法调用到JNI中。3.根据权利要求1或2所述的android平台下支持北斗模块的方法,其特征在于:所述步骤(4)中获得的GpsInterface由HAL层实现。4.根据权利要求1至3任一所述的android平台下支持北斗模块的方法,其特征在于:在使用北斗定位之前,取得Locat1n Manager的实例。5.根据权利要求4所述的android平台下支持北斗模块的方法,其特征在于:所述获得Locat1nManager的实例的方法是通过getSystemService方法的调用,获得位置提供者列表。6.根据权利要求5所述的android平台下支持北斗模块的方法,其特征在于:所述位置提供者列表包含北斗服务信息。7.根据权利要求6所述的android平台下支持北斗模块的方法,其特征在于:所述北斗服务信息包括获取:Locat1nMananger的getSystemService,获取最合适的provider的Criteria,注册监听器的requestLocat1nUpdates,获得经讳度表达的地址的Geocoder。8.根据权利要求1至7任一所述的android平台下支持北斗模块的方法,其特征在于:在HAL层的GPS.c驱动中的nmea_reader_parse函数根据NMEA打头的不同来分别增加判断语句判定是GPS还是北斗的NMEA协议信息。9.根据权利要求8所述的android平台下支持北斗模块的方法,其特征在于:GPS对于NMEA是用GP打头的卫星信息,北斗是基于BD打头的NMEA信息。
【专利摘要】本发明公开了android平台下支持北斗模块的方法,属于移动终端领域,包括嵌入式处理器和北斗导航芯片,包括以下步骤:由app发出定位申请;启动一个定位服务线程;所述线程调用应用框架App?Framework中的Location?provider服务;调用到JNI中,JNI获得GpsInterface,并且传给接口一个回调函数的实现;调用Gps驱动。该方法通过在Android系统中修改硬件抽象层,来全面支持北斗卫星模块在终端设备上的实现,可以随意运行在支持Android系统的手机、移动终端、或是个人电脑等。
【IPC分类】G01S19/42
【公开号】CN105572704
【申请号】CN201410539674
【发明人】高硕 , 崔霈文, 张帅, 展中华, 杨彦青, 陈皓, 杨森
【申请人】航天信息股份有限公司
【公开日】2016年5月11日
【申请日】2014年10月13日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1