欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

LBSSDK通用接入方法和系統(tǒng)與流程

文檔序號:11327734閱讀:555來源:國知局
LBS SDK通用接入方法和系統(tǒng)與流程

本發(fā)明涉及位置服務(wù)技術(shù)領(lǐng)域,尤其涉及一種lbs(locationbasedservice,基于位置服務(wù))sdk(softwaredevelopmentkit,軟件開發(fā)工具包)通用接入方法和系統(tǒng)。



背景技術(shù):

伴隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,精準化和個性化的服務(wù)越來越重要。其中,定位信息是實現(xiàn)精準化和個性化服務(wù)的一個重要參數(shù)。例如基于用戶所在位置,為用戶推薦周邊服務(wù),導(dǎo)航,獲取天氣等,都是對定位信息的強依賴。在現(xiàn)有技術(shù)中,lbs(基于位置服務(wù))通過網(wǎng)絡(luò)或外部定位方式(如gps)獲取移動終端用戶的位置信息(地理坐標,或大地坐標),在gis(地理信息系統(tǒng),geographicinformationsystem)平臺的支持下,為用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)。因此,app(application,應(yīng)用程序)通常需要獲取用戶的定位信息才能為用戶提供更精準化和個性化的服務(wù)。

目前,各大位置服務(wù)提供商可以為不同行業(yè)的app開發(fā)商,針對不同使用場景提供定制化的位置服務(wù)。通常的,位置服務(wù)提供商需要提供lbssdk并開放api(applicationprogramminginterface,應(yīng)用程序接口)來實現(xiàn)定位服務(wù),同時提供lbssdk的說明文檔以及示例,以供app開發(fā)商根據(jù)需求自行開發(fā)并接入,即可調(diào)用由位置服務(wù)提供商提供的位置服務(wù)。

但是,當(dāng)app開發(fā)商需要使用其他位置服務(wù)提供商提供的位置服務(wù)時,或者,當(dāng)app開發(fā)商同時使用多個位置服務(wù)提供商提供的位置服務(wù)但由于需求變動需要修改代碼時,由于不同位置服務(wù)提供商提供的lbssdk接入方式及api均不統(tǒng)一,容易造成代碼改動大,甚至需要重新實現(xiàn)。



技術(shù)實現(xiàn)要素:

鑒于上述問題,本發(fā)明提供一種解決上述問題的lbssdk通用接入方法和系統(tǒng)。

依據(jù)本發(fā)明的一個方面,提供一種lbssdk通用接入方法,應(yīng)用程序在包括觀察者、被觀察者、定位服務(wù)、lbssdk的系統(tǒng)結(jié)構(gòu)下,所述方法包括:

所述被觀察者在接收到所述觀察者發(fā)送的定位請求時,啟動所述定位服務(wù),并向所述定位服務(wù)發(fā)送所述定位請求;

所述定位服務(wù)通過調(diào)用封裝類,將所述定位請求發(fā)送到所述lbssdk以及獲取所述lbssdk反饋的定位信息,并將所述定位信息發(fā)送到所述被觀察者;

所述被觀察者接收到所述定位信息后,向所述觀察者反饋。

可選地,本發(fā)明所述方法中,所述定位服務(wù)通過調(diào)用封裝類,將所述定位請求發(fā)送到所述lbssdk以及獲取所述lbssdk反饋的定位信息,包括:

所述定位服務(wù)調(diào)用所述封裝類,將所述定位請求發(fā)送到所述封裝類,以及接收所述封裝類反饋的定位信息;

其中,所述封裝類在接收到所述定位請求后,將所述定位請求轉(zhuǎn)化為所述lbssdk支持的數(shù)據(jù)格式后,調(diào)用所述lbssdk的原生接口,將格式轉(zhuǎn)換后的定位請求發(fā)送到所述lbssdk,以及將所述lbssdk反饋的定位信息轉(zhuǎn)換為所述定位服務(wù)支持的數(shù)據(jù)格式后反饋給所述定位服務(wù)。

可選地,本發(fā)明所述方法中,所述定位服務(wù)在將所述定位請求發(fā)送到所述lbssdk之前,還包括:所述定位服務(wù)通過調(diào)用所述封裝類,對所述lbssdk進行初始化。

可選地,本發(fā)明所述方法中,所述調(diào)用封裝類對lbssdk進行初始化操作由所述定位服務(wù)的子線程實現(xiàn);和/或,調(diào)用封裝類向所述lbssdk發(fā)送定位請求及獲取所述定位信息的定位操作由所述定位服務(wù)的子線程實現(xiàn)。

可選地,本發(fā)明所述方法還包括:

所述定位服務(wù)通過調(diào)用所述封裝類,獲取所述lbssdk反饋的定位狀態(tài)變化信息,并將所述定位狀態(tài)變化信息發(fā)送到所述被觀察者;

所述被觀察者向所述觀察者反饋所述定位狀態(tài)變化信息。

可選地,本發(fā)明所述方法中,所述定位服務(wù)通過廣播的方式,將所述lbssdk反饋的信息發(fā)送到所述被觀察者。

可選地,本發(fā)明所述方法中,所述被觀察者在接收到所述觀察者發(fā)送的定位請求后,還包括:保存觀察者對象,并采用弱引用的方式持有所述觀察者對象。

可選地,本發(fā)明所述方法中,所述被觀察者設(shè)有與不同定位需求相匹配的多個外部調(diào)用接口;

所述觀察者根據(jù)不同的定位需求,調(diào)用相應(yīng)的外部調(diào)用接口,以向所述被觀察者發(fā)送相應(yīng)的定位請求。

可選地,本發(fā)明所述方法中,在所述被觀察者將接收到的定位信息向所述觀察者反饋之后,還包括:所述觀察者釋放對所述被觀察者的監(jiān)聽。

可選地,本發(fā)明所述方法中,所述被觀察者在接收到所述觀察者發(fā)送的定位請求時,還包括:檢測預(yù)設(shè)緩存區(qū)內(nèi)是否緩存有有效的定位信息以及所述有效的定位信息是否滿足所述定位請求的需求,當(dāng)檢測結(jié)果均為是時,將滿足需求的定位信息向所述觀察者反饋;否則,啟動所述定位服務(wù);

其中,所述預(yù)設(shè)緩存區(qū)內(nèi)緩存的定位信息包括:所述被觀察者接收到的所述定位服務(wù)反饋的定位信息。

依據(jù)本發(fā)明的另一個方面,還提供一種lbssdk通用接入系統(tǒng),包括:觀察者模塊、被觀察者模塊、定位服務(wù)模塊和lbssdk;

所述觀察者模塊,用于向所述被觀察者模塊發(fā)送定位請求,并接收所述被觀察者模塊反饋的定位信息;

所述被觀察者模塊,用于在接收到所述定位請求時,啟動所述定位服務(wù)模塊,并向所述定位服務(wù)模塊發(fā)送所述定位請求,以及在接收到所述定位服務(wù)模塊反饋的定位信息時,將所述定位信息發(fā)送到所述觀察者模塊;

所述定位服務(wù)模塊,用于通過調(diào)用封裝類,將接收到的所述定位請求發(fā)送到lbssdk以及獲取所述lbssdk反饋的定位信息,并將所述定位信息發(fā)送到所述被觀察者。

可選地,本發(fā)明所述系統(tǒng)中,所述定位服務(wù)模塊,具體用于調(diào)用所述封裝類,將所述定位請求發(fā)送到所述封裝類,以及接收所述封裝類反饋的定位信息;其中,所述封裝類在接收到所述定位請求后,將所述定位請求轉(zhuǎn)化為所述lbssdk支持的數(shù)據(jù)格式后,調(diào)用所述lbssdk的原生接口,將格式轉(zhuǎn)換后的定位請求發(fā)送到所述lbssdk,以及將所述lbssdk反饋的定位信息轉(zhuǎn)換為所述定位服務(wù)模塊支持的數(shù)據(jù)格式后反饋給所述定位服務(wù)模塊。

可選地,本發(fā)明所述系統(tǒng)中,所述定位服務(wù)模塊,還用于在將所述定位請求發(fā)送到所述lbssdk之前,通過調(diào)用所述封裝類,對所述lbssdk進行初始化。

可選地,本發(fā)明所述系統(tǒng)中,所述定位服務(wù)模塊,還用于通過調(diào)用所述封裝類,獲取所述lbssdk反饋的定位狀態(tài)變化信息,并將所述定位狀態(tài)變化信息發(fā)送到所述被觀察者模塊;

所述被觀察者模塊,還用于在接收到所述定位狀態(tài)變化信息時,將所述定位狀態(tài)變化信息發(fā)送到所述觀察者模塊。

可選地,本發(fā)明所述系統(tǒng)中,所述定位服務(wù)模塊,具體用于通過廣播的方式,將所述lbssdk反饋的信息發(fā)送到所述被觀察者模塊。

可選地,本發(fā)明所述系統(tǒng)中,所述被觀察者模塊,還用于在接收到所述觀察者模塊發(fā)送的定位請求后,保存觀察者對象,并采用弱引用的方式持有所述觀察者對象。

可選地,本發(fā)明所述系統(tǒng)中,所述被觀察者模塊設(shè)計有與不同定位需求相匹配的多個外部調(diào)用接口;

所述觀察者模塊,具體用于根據(jù)不同的定位需求,調(diào)用相應(yīng)的外部調(diào)用接口,以向所述被觀察者模塊發(fā)送相應(yīng)的定位請求。

可選地,本發(fā)明所述系統(tǒng)中,所述被觀察者模塊,進一步用于在接收到所述觀察者模塊發(fā)送的定位請求時,檢測預(yù)設(shè)緩存區(qū)內(nèi)是否緩存有有效的定位信息以及所述有效的定位信息是否滿足所述定位請求的需求,當(dāng)檢測結(jié)果均為是時,將滿足需求的定位信息向所述觀察者模塊反饋;否則,啟動所述定位服務(wù)模塊;其中,所述預(yù)設(shè)緩存區(qū)內(nèi)緩存的定位信息包括:所述被觀察者模塊接收到的所述定位服務(wù)模塊反饋的定位信息。

本發(fā)明有益效果如下:

本發(fā)明所述方案,在觀察者模式下,采用單獨實現(xiàn)的封裝類直接與原生lbssdk交互,當(dāng)需要修改lbssdk時,只需要修改該封裝類即可。這樣,使得對外接口與原生sdk接口完全解耦,方便接入新lbssdk,方便更換lbssdk,實現(xiàn)了在無需修改代碼的情況下,lbssdk的統(tǒng)一接入。

上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。

附圖說明

通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:

圖1為本發(fā)明實施例中采用觀察者模式進行l(wèi)bssdk接入的示意圖;

圖2為本發(fā)明第一實施例提供的一種lbssdk通用接入方法的流程圖;

圖3為本發(fā)明第二實施例所述方法的應(yīng)用的系統(tǒng)結(jié)構(gòu)框圖;

圖4為本發(fā)明第二實施例中通過子線程實現(xiàn)定位操作的示意圖;

圖5為本發(fā)明第三實施例提供的一種lbssdk通用接入系統(tǒng)的結(jié)構(gòu)圖。

具體實施方式

下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。

本發(fā)明實施例提供一種lbssdk通用接入方法和系統(tǒng),意在提供一個統(tǒng)一的、通用的、滿足各種定位需求的高性能lbssdk接入方案,從而方便各個開發(fā)者以及公司對各種lbssdk的接入,滿足其定位服務(wù)的需求。

本發(fā)明實施例,考慮到定位是耗時操作,且定位操作可能會被多方調(diào)用,所以,綜合了整體特性,本發(fā)明實施例所述方案采用觀察者模式來實現(xiàn),如圖1所示,為采用觀察者模式進行l(wèi)bssdk接入的示意圖。具體的,當(dāng)觀察者有定位需求時,可向被觀察者發(fā)起定位請求,由被觀察者與數(shù)據(jù)源側(cè)交互,獲取到定位數(shù)據(jù)后通知到觀察者。

下面通過幾個具體實施例,對本發(fā)明實施例所述的方法和系統(tǒng)進行詳細說明。

具體的,本發(fā)明第一實施例中,提供一種lbssdk通用接入方法,應(yīng)用程序在包括觀察者、被觀察者、定位服務(wù)、lbssdk的系統(tǒng)結(jié)構(gòu)下,如圖2所示,所述方法包括如下步驟:所述方法包括:

步驟s201,被觀察者在接收到觀察者發(fā)送的定位請求時,啟動定位服務(wù),并向定位服務(wù)發(fā)送所述定位請求;

步驟s202,定位服務(wù)通過調(diào)用封裝類,將所述定位請求發(fā)送到lbssdk以及獲取lbssdk反饋的定位信息,并將所述定位信息發(fā)送到被觀察者;

本發(fā)明實施例中,定位服務(wù)在將定位請求發(fā)送到lbssdk之前,還包括:通過調(diào)用所述封裝類,對所述lbssdk進行初始化。

在本發(fā)明的一個具體實施例中,定位服務(wù)通過調(diào)用封裝類,將所述定位請求發(fā)送到所述lbssdk以及獲取所述lbssdk反饋的定位信息,具體包括:

1)定位服務(wù)調(diào)用封裝類,將所述定位請求發(fā)送到所述封裝類;

2)封裝類對所述定位請求進行格式轉(zhuǎn)換,并調(diào)用所述lbssdk的原生接口,將格式轉(zhuǎn)換后的定位請求發(fā)送到所述lbssdk;其中,封裝類根據(jù)lbssdk對數(shù)據(jù)格式的要求對所述定位請求進行格式轉(zhuǎn)換。

3)封裝類將所述lbssdk反饋的定位信息轉(zhuǎn)換為所述定位服務(wù)支持的數(shù)據(jù)格式后反饋給所述定位服務(wù)。

步驟s203,被觀察者接收到所述定位信息后,向觀察者反饋。

為了提高定位監(jiān)聽效率,在本發(fā)明的一個可選實施例中,步驟s201中,被觀察者在接收到觀察者發(fā)送的定位請求時,檢測預(yù)設(shè)緩存區(qū)內(nèi)是否緩存有有效的定位信息以及所述有效的定位信息是否滿足所述定位請求的需求,當(dāng)檢測結(jié)果均為是時,直接將滿足需求的定位信息向所述觀察者反饋;否則,啟動所述定位服務(wù)。

本實施例中,預(yù)設(shè)緩存區(qū)內(nèi)緩存的定位信息包括但不限于為:所述被觀察者接收到的所述定位服務(wù)器反饋的定位信息。也就是說,本實施例中,被觀察者在接收到所述定位服務(wù)反饋的定位信息后,將其存入所述預(yù)設(shè)緩存區(qū)。

本實施例中,考慮到定位信息具有較強的時效性,為了能夠?qū)崿F(xiàn)利用緩存的數(shù)據(jù)進行定位信息反饋,需要對緩存的數(shù)據(jù)進行管理或者處理,具體的,本實施例中,可以根據(jù)需求,預(yù)先設(shè)定有效定位信息的過濾規(guī)則,被觀察者在接收到定位請求時,根據(jù)所述過濾規(guī)則,過濾出有效的定位信息?;蛘?,被觀察者根據(jù)所述過濾規(guī)則,實時的對存儲到緩存區(qū)內(nèi)的定位信息進行過濾處理,確保緩存區(qū)內(nèi)存儲的定位信息為有效的。

本領(lǐng)域技術(shù)人員可以根據(jù)需求靈活的設(shè)定本規(guī)則,例如,基于時間設(shè)定本規(guī)則,即只有在設(shè)定的時間范圍內(nèi)的定位信息才為有效的定位信息,本發(fā)明不對過濾規(guī)則做唯一限定。

本發(fā)明實施例所述方法,在觀察者模式下,采用單獨實現(xiàn)的封裝類直接與原生lbssdk交互,當(dāng)需要修改lbssdk時,只需要修改該封裝類即可。這樣,使得對外接口與原生sdk接口完全解耦,方便接入新lbssdk,方便更換lbssdk,實現(xiàn)了在無需修改代碼的情況下,lbssdk的統(tǒng)一接入。

本發(fā)明實施例所述方案應(yīng)用于android項目工程中,通過更好的方式解決并優(yōu)化各廠家lbssdk的接入,滿足各種定位功能的需求。

本發(fā)明第二實施例中,提供一種lbssdk通用接入方法,本實施例將結(jié)合圖3,公開較實施例一更多的技術(shù)細節(jié),用以細化和優(yōu)化本發(fā)明實施例所述方法的功能,以使本發(fā)明方案的實施更方便,準確。需要說明的是,本實施例公開的技術(shù)細節(jié)用以解釋本發(fā)明并不用于唯一限定本發(fā)明,且在不沖突的情況下,本發(fā)明實施例公開的各技術(shù)特征可以互相任意組合。

本發(fā)明實施例所述方法應(yīng)用的系統(tǒng)結(jié)構(gòu)圖如圖3所示,包括四部分,分別為:觀察者、被觀察者、定位服務(wù)和lbssdk。其中,觀察者向被觀察者進行監(jiān)聽注冊,被觀察者為觀察者提供外部調(diào)用接口。

具體的,本實施例所述方法包括如下步驟:

步驟1,觀察者通過被觀察者的外部調(diào)用接口,向被觀察者發(fā)送定位請求;

步驟2,被觀察者啟動定位服務(wù),并向定位服務(wù)發(fā)送定位請求;

步驟3,定位服務(wù)調(diào)用封裝類,初始化lbssdk;

步驟4,定位服務(wù)調(diào)用封裝類,與lbssdk交互,執(zhí)行定位操作;

具體的,定位服務(wù)通過調(diào)用封裝類,將所述定位請求轉(zhuǎn)換為lbssdk支持的格式后通過lbssdk的原生接口發(fā)送到lbssdk;

本實施例中,通過封裝類直接與lbssdk交互,當(dāng)需要修改lbssdk時,只需要修改該封裝類即可,實現(xiàn)了定位操作與lbssdk完全隔離。而對于lbssdk來說,只需要將lbssdk回調(diào)方式統(tǒng)一成自定義的回調(diào)方式即可。

在本發(fā)明的一個可選的實施例中,為了避免耗時,采用rxjava方式(本領(lǐng)域技術(shù)人員也可以根據(jù)需求替換為其他方式)實現(xiàn)定位異步操作,具體的,本實施例中,定位服務(wù)將耗時操作全部放在子線程執(zhí)行,異步獲取結(jié)果,避免耗時。其中,耗時操作至少包括:lbssdk初始化操作和獲取定位信息的定位操作。在具體實現(xiàn)時,定位服務(wù)的主線程將lbsdk的初始化操作交由子線程來實現(xiàn),子線程在sdk初始化完成后,向主線程反饋初始化完成的結(jié)果;以及定位服務(wù)的主線程將定位操作交由sdk子線程來實現(xiàn),sdk子線程在執(zhí)行完定位操作后,進行定位信息回調(diào)操作,具體如圖4所示。

步驟5,lbssdk將定位信息通過封裝類發(fā)送至定位服務(wù);

步驟6,定位服務(wù)監(jiān)聽到定位信息后,將所述定位信息發(fā)送到被觀察者。

在本發(fā)明的一個具體實施例中,被觀察者將自己注冊為廣播接收者,定位服務(wù)通過發(fā)送廣播消息,將定位信息發(fā)送到被觀察者。

在本發(fā)明的一個可選實施例中,定位服務(wù)在每次定位狀態(tài)改變信息時,例如開始定位時、接收到定位信息回調(diào)時等,將定位狀態(tài)改變信息通過發(fā)送廣播通知廣播至被觀察者,以使被觀察者將定位狀態(tài)改變信息通知到觀察者。

步驟7,被觀察者接收到定位信息后,將定位信息發(fā)送給觀察者。

本發(fā)明實施例中,為了提高定位效率,增加了緩存機制,即,被觀察者在接收到定位信息后,對定位信息進行緩存。當(dāng)被觀察者對定位信息進行緩存后,如果緩存數(shù)據(jù)符合預(yù)設(shè)定的規(guī)則要求(如數(shù)據(jù)緩存時間在設(shè)定的時間段之內(nèi)),直接向觀察者返回緩存數(shù)據(jù),不必重新定位。相對應(yīng)的,如果緩存數(shù)據(jù)不符合設(shè)定的規(guī)則要求,將緩存的數(shù)據(jù)清空。

進一步地,在本發(fā)明的一個可選地實施例中,被觀察者還保存觀察者對象,由于定位操作是耗時操作,如果被觀察者的定位接收器長時間持有對象可能導(dǎo)致對象無法回收而造成內(nèi)存泄漏。所以,本發(fā)明實施例中,持有對象采用了弱引用的方式。通過這種弱引用形式保存對象實例,可以避免內(nèi)存泄漏。

進一步地,在本發(fā)明的一個可選實施例中,增加接口滿足多種定位需求。具體的,由于采用觀察者模式,默認方式是每次獲取到定位信息都會通知觀察者。但是這并不滿足所有需求。例如,有些需求中可能只需要獲取一次定位信息。為此,本實施例中,增加了簡化調(diào)用接口。即只調(diào)用一次定位,獲取到定位數(shù)據(jù)后取消監(jiān)聽。當(dāng)然,本發(fā)明實施例還可以開放多種調(diào)用接口,滿足多種需求,例如,增加了停止定位,恢復(fù)定位,立刻定位,輪詢定位等調(diào)用接口,滿足各種功能的需要。

綜上可知,本發(fā)明實施例所述技術(shù)方案:

1)對外接口與原生lbssdk接口完全解耦,方便接入新lbssdk,以及方便更換lbssdk;

2)對于較為耗時的定位操作,采用子線程異步操作,不影響app正常功能,避免anr;

3)被觀察者采用弱引用持有監(jiān)聽對象,避免內(nèi)存泄漏;

4)本實施例中定位服務(wù)通過廣播通知消息進行定位信息下發(fā),實現(xiàn)了跨進程調(diào)用定位信息。

5)本實施中,通過多種功能接口調(diào)用,滿足各種定位需求。

可見,本發(fā)明經(jīng)過系統(tǒng)化的分析與設(shè)計,綜合考慮多種需求,兼顧功能與性能,可讓app開發(fā)者在短時間內(nèi)針對lbssdk的接入以及更換,找到了滿足需求的高性能解決方案。

本發(fā)明第三實施例提供一種lbssdk通用接入系統(tǒng),如圖5所示,包括:觀察者模塊510、被觀察者模塊520、定位服務(wù)模塊530和lbssdk540;

觀察者模塊510,用于向被觀察者模塊520發(fā)送定位請求,并接收被觀察者模塊520反饋的定位信息;

被觀察者模塊520,用于在接收到所述定位請求時,啟動定位服務(wù)模塊530,并向定位服務(wù)模塊530發(fā)送所述定位請求,以及在接收到定位服務(wù)模塊530反饋的定位信息時,將所述定位信息發(fā)送到觀察者模塊510;

定位服務(wù)模塊530,用于通過調(diào)用封裝類,將接收到的所述定位請求發(fā)送到lbssdk540以及獲取lbssdk540反饋的定位信息,并將所述定位信息發(fā)送到被觀察者520。

基于上述結(jié)構(gòu)框架及實施原理,下面給出在上述結(jié)構(gòu)下的幾個具體及優(yōu)選實施方式,用以細化和優(yōu)化本發(fā)明所述系統(tǒng)的功能,以使本發(fā)明方案的實施更方便,準確。具體涉及如下內(nèi)容:

本發(fā)明實施例中,定位服務(wù)模塊530,具體用于調(diào)用所述封裝類,將所述定位請求發(fā)送到所述封裝類,以及接收所述封裝類反饋的定位信息;其中,所述封裝類在接收到所述定位請求后,將所述定位請求轉(zhuǎn)化為所述lbssdk540支持的數(shù)據(jù)格式后,調(diào)用lbssdk540的原生接口,將格式轉(zhuǎn)換后的定位請求發(fā)送到lbssdk540,以及將lbssdk540反饋的定位信息轉(zhuǎn)換為所述定位服務(wù)模塊530支持的數(shù)據(jù)格式后反饋給定位服務(wù)模塊530。

進一步地,本發(fā)明實施例中,定位服務(wù)模塊530,還用于在將所述定位請求發(fā)送到所述lbssdk540之前,通過調(diào)用所述封裝類,對所述lbssdk540進行初始化。

進一步地,本發(fā)明實施例中,定位服務(wù)模塊530,還用于通過所述封裝類,獲取lbssdk540反饋的定位狀態(tài)變化信息,并將所述定位狀態(tài)變化信息發(fā)送到被觀察者模塊520;

被觀察者模塊520,還用于在接收到所述定位狀態(tài)變化信息時,將所述定位狀態(tài)變化信息發(fā)送到觀察者模塊510。

進一步地,本發(fā)明實施例中,定位服務(wù)模塊530,具體用于通過廣播的方式,將所述lbssdk反饋的信息發(fā)送到所述被觀察者模塊520。

進一步地,本發(fā)明實施例中,被觀察者模塊520,還用于在接收到所述觀察者模塊510發(fā)送的定位請求后,保存觀察者對象,并采用弱引用的方式持有所述觀察者對象。

進一步地,本發(fā)明實施例中,被觀察者模塊520設(shè)計有與不同定位需求相匹配的多個外部調(diào)用接口;

觀察者模塊510,具體用于根據(jù)不同的定位需求,調(diào)用相應(yīng)的外部調(diào)用接口,以向所述被觀察者模塊520發(fā)送相應(yīng)的定位請求。

進一步地,本發(fā)明實施例中,被觀察者模塊520,進一步用于在接收到所述觀察者模塊510發(fā)送的定位請求時,檢測預(yù)設(shè)緩存區(qū)內(nèi)是否緩存有有效的定位信息以及所述有效的定位信息是否滿足所述定位請求的需求,當(dāng)檢測結(jié)果均為是時,將滿足需求的定位信息向所述觀察者模塊510反饋;否則,啟動所述定位服務(wù)模塊530;其中,所述預(yù)設(shè)緩存區(qū)內(nèi)緩存的定位信息包括:所述被觀察者模塊520接收到的所述定位服務(wù)模塊530反饋的定位信息。

綜上可知,本發(fā)明實施例所述系統(tǒng):

1)對外接口與原生lbssdk接口完全解耦,方便接入新lbssdk,以及方便更換lbssdk;

2)被觀察者模塊采用弱引用持有監(jiān)聽對象,避免內(nèi)存泄漏;

3)定位服務(wù)模塊通過廣播通知消息進行定位信息下發(fā),實現(xiàn)了跨進程調(diào)用定位信息。

4)本實施中,通過多種功能接口調(diào)用,滿足各種定位需求。

可見,本發(fā)明經(jīng)過系統(tǒng)化的分析與設(shè)計,綜合考慮多種需求,兼顧功能與性能,可讓app開發(fā)者在短時間內(nèi)針對lbssdk的接入以及更換,找到了滿足需求的高性能解決方案。

本發(fā)明第四實施例提供一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)第一或第二實施例所述lbssdk通用接入方法的步驟。

由于在第一、第二實施例中已經(jīng)對lbssdk通用接入方法的實施過程進行了詳細說明,本實施例在此不再重復(fù)贅述。

本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是其與其他實施例的不同之處。尤其對于系統(tǒng)、存儲介質(zhì)實施例而言,由于其基本相似與方法實施例,所以,描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。

本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:rom、ram、磁盤或光盤等。

總之,以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
灵山县| 京山县| 元谋县| 合水县| 安达市| 定远县| 镇坪县| 玛沁县| 综艺| 余庆县| 莫力| 高尔夫| 林甸县| 光泽县| 清河县| 潢川县| 万盛区| 潍坊市| 乳源| 夏邑县| 河间市| 岑溪市| 南城县| 徐汇区| 南开区| 望江县| 高唐县| 稻城县| 多伦县| 株洲市| 南投县| 平安县| 特克斯县| 淳化县| 水富县| 阳原县| 民和| 广州市| 江都市| 河南省| 柯坪县|