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

文档序号:9809256阅读:3029来源:国知局
Android平台下支持北斗模块的方法
【技术领域】
[0001]本发明涉及移动终端技术领域,具体涉及android平台下支持北斗模块方法。
【背景技术】
[0002]北斗卫星导航系统是我国自行研制的全球卫星定位与通信系统,可在全球范围内全天候、全天时为各类用户提供高精度、高可靠定位、导航、授时服务,并具有短报文通信能力,已经具备区域导航、定位和授时能力,与目前市场上民用比较普遍的GPS相比,北斗卫星导航具有精度更高、功能更丰富及自主产权等特定,是导航应用发展的趋势。
[0003]Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑。Android平台具有开发性优势,开发的平台允许任何移动终端厂商加入到android联盟中来。
[0004]目前android系统在国内外得到了广泛的应用,其自身代码也在飞速的发展以满足各种硬件设备和业务需求,但是几乎所有的Android设备的卫星定位芯片都是GPS (Global Posit1ning System,全球定位系统)的,这是为了迎合主流的android厂商提供的驱动为蓝本配合的。但是随着中国北斗卫星导航系统(BeiDou Navigat1nSatellite SyStem-〃BDS〃)越来越趋于完善,覆盖面和精准度的提高,现在越来越多的终端制造商开始使用北斗导航系统,因为原生的Android系统只有对GPS的导航系统进行了全面支持,而相对新型的北斗导航系统则无法提供全面支持。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的android平台下支持北斗模块的方法,来全面支持北斗卫星模块在移动终端设备上的实现。
[0006]依据本发明的一个方面,提供了 android平台下支持北斗模块的方法,所述android 平台由 Linux Kernel、Android Runtime、Libraries、Applicat1n Framework、Applicat1ns 5部分组成,包括嵌入式处理器和北斗导航芯片,其特征在于,包括以下步骤:
[0007]步骤(I)、由app 发出定位申请 Locat1n Applicat1n ;
[0008]步骤(2)、启动一个定位服务线程Locat1n Manager Service ;
[0009]步骤(3)、所述线程调用应用框架App Framework中的Locat1n provider服务Android_locat1n_Locat1nManagerProvider_XXX ;
[0010]步骤(4)、调用到JNI中,所述JNI获得GpsInterface,并且传给接口一个回调函数的实现 Gpscallbacks gpsLocat1n ;
[0011]步骤(5)、调用Gps 驱动 Gps Driver。
[0012]进一步的,所述步骤(4)通过native方法调用到JNI中。
[0013]进一步的,所述步骤(4)中获得的GpsInterface由HAL层实现。
[0014]进一步的,在使用北斗定位之前,取得Locat1n Manager的实例。
[0015]更进一步的,所述获得Locat1nManager的实例的方法是通过getSystemService方法的调用,获得位置提供者列表。
[0016]更进一步的,所述位置提供者列表包含北斗服务信息。
[0017]更进一步的,所述北斗服务信息包括获取:Locat1nMananger的getSystemService,获取最合适的provider的Criteria,注册监听器的requestLocat1nUpdates,获得经讳度表达的地址的Geocoder。
[0018]进一步的,在HAL层的GPS.c驱动中的nmea_reader_parse函数根据NMEA打头的不同来分别增加判断语句判定是GPS还是北斗的NMEA协议信息。
[0019]更进一步的,GPS对于NMEA是用GP打头的卫星信息,北斗是基于BD打头的NMEA信息。
[0020]为了解决Android系统无法支持北斗卫星模块的问题,本发明提出了一种在Android系统中修改硬件抽象层的方法,来全面支持北斗卫星模块在终端设备上的实现,可以随意运行在支持Android系统的手机、移动终端、或是个人电脑等。
[0021]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0022]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0023]图1示出了根据本发明实施例一的android平台下支持北斗模块的方法整体框架图;
[0024]图2示出了根据本发明实施例二的android平台下支持北斗模块的方法流程图;
[0025]图3示出了根据本发明实施例三的android平台下支持北斗模块的硬件连接图。
【具体实施方式】
[0026]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0027]需要说明的是,在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可以理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名词的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”或“包括”为一开放式用语,故应解释成“包含但不限定于”。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明书的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
[0028]为了解决上述Android系统无法支持北斗卫星模块的问题,本发明提出了一种在Android系统中修改硬件抽象层的方法,来全面支持北斗卫星模块在终端设备上的实现,可以随意运行在支持Android系统的手机、移动终端、或是个人电脑等。该功能的实现主要针对某些行业对北斗卫星导航模块的使用开发。
[0029]为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个附图并不构成对本发明实施例的限定。
[0030]实施例一、android平台下支持北斗模块的方法整体框架。
[0031]下面结合图1对本实施例一的方法整体框架进行详细说明。
[0032]图1为本发明实施例一的android平台下支持北斗模块的方法整体框架图,如图1所不,本发明实施例的整体框架包括Framework&Applicat1ns 101, Externallibraries&Runtimel02, HAL(Iibhardware)(Hardware Abstract1n Layer,硬件抽象层)103 和 Linux Device Driverl04o
[0033]具体的,一个完整的android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Applicat1n Framework、Applicat1ns。下面分另丨J简单介绍各部分。
[0034]Linux Kernel: An droid基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
[0035]Android Runtime:Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。
[0036]Libraries: An droid包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(applicat1n framework)暴露给开发者。一些核心库如:系统C库;媒体库;界面管理;3D库等等。
[0037]Applicat1n Framework:通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。
[0038]Applicat1ns:Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。
[0039]本发明是修改android系统中HAL的Iibgps的代码库实现的。所
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1