Android平臺下支持北斗模塊的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)終端技術(shù)領(lǐng)域,具體涉及android平臺下支持北斗模塊方法。
【背景技術(shù)】
[0002]北斗衛(wèi)星導(dǎo)航系統(tǒng)是我國自行研制的全球衛(wèi)星定位與通信系統(tǒng),可在全球范圍內(nèi)全天候、全天時(shí)為各類用戶提供高精度、高可靠定位、導(dǎo)航、授時(shí)服務(wù),并具有短報(bào)文通信能力,已經(jīng)具備區(qū)域?qū)Ш?、定位和授時(shí)能力,與目前市場上民用比較普遍的GPS相比,北斗衛(wèi)星導(dǎo)航具有精度更高、功能更豐富及自主產(chǎn)權(quán)等特定,是導(dǎo)航應(yīng)用發(fā)展的趨勢。
[0003]Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦。Android平臺具有開發(fā)性優(yōu)勢,開發(fā)的平臺允許任何移動(dòng)終端廠商加入到android聯(lián)盟中來。
[0004]目前android系統(tǒng)在國內(nèi)外得到了廣泛的應(yīng)用,其自身代碼也在飛速的發(fā)展以滿足各種硬件設(shè)備和業(yè)務(wù)需求,但是幾乎所有的Android設(shè)備的衛(wèi)星定位芯片都是GPS (Global Posit1ning System,全球定位系統(tǒng))的,這是為了迎合主流的android廠商提供的驅(qū)動(dòng)為藍(lán)本配合的。但是隨著中國北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeiDou Navigat1nSatellite SyStem-〃BDS〃)越來越趨于完善,覆蓋面和精準(zhǔn)度的提高,現(xiàn)在越來越多的終端制造商開始使用北斗導(dǎo)航系統(tǒng),因?yàn)樵腁ndroid系統(tǒng)只有對GPS的導(dǎo)航系統(tǒng)進(jìn)行了全面支持,而相對新型的北斗導(dǎo)航系統(tǒng)則無法提供全面支持。
【發(fā)明內(nèi)容】
[0005]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的android平臺下支持北斗模塊的方法,來全面支持北斗衛(wèi)星模塊在移動(dòng)終端設(shè)備上的實(shí)現(xiàn)。
[0006]依據(jù)本發(fā)明的一個(gè)方面,提供了 android平臺下支持北斗模塊的方法,所述android 平臺由 Linux Kernel、Android Runtime、Libraries、Applicat1n Framework、Applicat1ns 5部分組成,包括嵌入式處理器和北斗導(dǎo)航芯片,其特征在于,包括以下步驟:
[0007]步驟(I)、由app 發(fā)出定位申請 Locat1n Applicat1n ;
[0008]步驟(2)、啟動(dòng)一個(gè)定位服務(wù)線程Locat1n Manager Service ;
[0009]步驟(3)、所述線程調(diào)用應(yīng)用框架App Framework中的Locat1n provider服務(wù)Android_locat1n_Locat1nManagerProvider_XXX ;
[0010]步驟(4)、調(diào)用到JNI中,所述JNI獲得GpsInterface,并且傳給接口一個(gè)回調(diào)函數(shù)的實(shí)現(xiàn) Gpscallbacks gpsLocat1n ;
[0011]步驟(5)、調(diào)用Gps 驅(qū)動(dòng) Gps Driver。
[0012]進(jìn)一步的,所述步驟(4)通過native方法調(diào)用到JNI中。
[0013]進(jìn)一步的,所述步驟(4)中獲得的GpsInterface由HAL層實(shí)現(xiàn)。
[0014]進(jìn)一步的,在使用北斗定位之前,取得Locat1n Manager的實(shí)例。
[0015]更進(jìn)一步的,所述獲得Locat1nManager的實(shí)例的方法是通過getSystemService方法的調(diào)用,獲得位置提供者列表。
[0016]更進(jìn)一步的,所述位置提供者列表包含北斗服務(wù)信息。
[0017]更進(jìn)一步的,所述北斗服務(wù)信息包括獲取:Locat1nMananger的getSystemService,獲取最合適的provider的Criteria,注冊監(jiān)聽器的requestLocat1nUpdates,獲得經(jīng)諱度表達(dá)的地址的Geocoder。
[0018]進(jìn)一步的,在HAL層的GPS.c驅(qū)動(dòng)中的nmea_reader_parse函數(shù)根據(jù)NMEA打頭的不同來分別增加判斷語句判定是GPS還是北斗的NMEA協(xié)議信息。
[0019]更進(jìn)一步的,GPS對于NMEA是用GP打頭的衛(wèi)星信息,北斗是基于BD打頭的NMEA信息。
[0020]為了解決Android系統(tǒng)無法支持北斗衛(wèi)星模塊的問題,本發(fā)明提出了一種在Android系統(tǒng)中修改硬件抽象層的方法,來全面支持北斗衛(wèi)星模塊在終端設(shè)備上的實(shí)現(xiàn),可以隨意運(yùn)行在支持Android系統(tǒng)的手機(jī)、移動(dòng)終端、或是個(gè)人電腦等。
[0021]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說明】
[0022]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。說明書附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。顯而易見地,下面描述的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0023]圖1示出了根據(jù)本發(fā)明實(shí)施例一的android平臺下支持北斗模塊的方法整體框架圖;
[0024]圖2示出了根據(jù)本發(fā)明實(shí)施例二的android平臺下支持北斗模塊的方法流程圖;
[0025]圖3示出了根據(jù)本發(fā)明實(shí)施例三的android平臺下支持北斗模塊的硬件連接圖。
【具體實(shí)施方式】
[0026]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0027]需要說明的是,在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可以理解,硬件制造商可能會用不同名詞來稱呼同一個(gè)組件。本說明書及權(quán)利要求并不以名詞的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”或“包括”為一開放式用語,故應(yīng)解釋成“包含但不限定于”。說明書后續(xù)描述為實(shí)施本發(fā)明的較佳實(shí)施方式,然所述描述乃以說明書的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。
[0028]為了解決上述Android系統(tǒng)無法支持北斗衛(wèi)星模塊的問題,本發(fā)明提出了一種在Android系統(tǒng)中修改硬件抽象層的方法,來全面支持北斗衛(wèi)星模塊在終端設(shè)備上的實(shí)現(xiàn),可以隨意運(yùn)行在支持Android系統(tǒng)的手機(jī)、移動(dòng)終端、或是個(gè)人電腦等。該功能的實(shí)現(xiàn)主要針對某些行業(yè)對北斗衛(wèi)星導(dǎo)航模塊的使用開發(fā)。
[0029]為便于對本發(fā)明實(shí)施例的理解,下面將結(jié)合附圖以幾個(gè)具體實(shí)施例為例做進(jìn)一步的解釋說明,且各個(gè)附圖并不構(gòu)成對本發(fā)明實(shí)施例的限定。
[0030]實(shí)施例一、android平臺下支持北斗模塊的方法整體框架。
[0031]下面結(jié)合圖1對本實(shí)施例一的方法整體框架進(jìn)行詳細(xì)說明。
[0032]圖1為本發(fā)明實(shí)施例一的android平臺下支持北斗模塊的方法整體框架圖,如圖1所不,本發(fā)明實(shí)施例的整體框架包括Framework&Applicat1ns 101, Externallibraries&Runtimel02, HAL(Iibhardware)(Hardware Abstract1n Layer,硬件抽象層)103 和 Linux Device Driverl04o
[0033]具體的,一個(gè)完整的android系統(tǒng)架構(gòu)由5部分組成,分別是:Linux Kernel、Android Runtime、Libraries、Applicat1n Framework、Applicat1ns。下面分另丨J簡單介紹各部分。
[0034]Linux Kernel: An droid基于Linux 2.6提供核心系統(tǒng)服務(wù),例如:安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧、驅(qū)動(dòng)模型。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細(xì)節(jié)而為上層提供統(tǒng)一的服務(wù)。
[0035]Android Runtime:Android包含一個(gè)核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個(gè)Android應(yīng)用程序是Dalvik虛擬機(jī)中的實(shí)例,運(yùn)行在他們自己的進(jìn)程中。
[0036]Libraries: An droid包含一個(gè)C/C++庫的集合,供Android系統(tǒng)的各個(gè)組件使用。這些功能通過Android的應(yīng)用程序框架(applicat1n framework)暴露給開發(fā)者。一些核心庫如:系統(tǒng)C庫;媒體庫;界面管理;3D庫等等。
[0037]Applicat1n Framework:通過提供開放的開發(fā)平臺,Android使開發(fā)者能夠編制極其豐富和新穎的應(yīng)用程序。開發(fā)者可以自由地利用設(shè)備硬件優(yōu)勢、訪問位置信息、運(yùn)行后臺服務(wù)、設(shè)置鬧鐘、向狀態(tài)欄添加通知等等。開發(fā)者可以完全使用核心應(yīng)用程序所使用的框架APIs。應(yīng)用程序的體系結(jié)構(gòu)旨在簡化組件的重用,任何應(yīng)用程序都能發(fā)布他的功能且任何其他應(yīng)用程序可以使用這些功能(需要服從框架執(zhí)行的安全限制)。這一機(jī)制允許用戶替換組件。
[0038]Applicat1ns:Android裝配一個(gè)核心應(yīng)用程序集合,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯(lián)系人和其他設(shè)置。所有應(yīng)用程序都是用Java編程語言寫的。
[0039]本發(fā)明是修改android系統(tǒng)中HAL的Iibgps的代碼庫實(shí)現(xiàn)的。所