版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Gps基礎(chǔ)知識21 gps簡介22 GPS系統(tǒng)構(gòu)成-空間部分23 GPS系統(tǒng)構(gòu)成-控制部分24 GPS系統(tǒng)構(gòu)成-用戶部分25 GPS工作原理-定位原理36 GPS工作原理-定位精度37 GPS數(shù)據(jù)38 GPS定位方式6GPS代碼框架:61 代碼框架62 SystemServer.java73 LocationManagerService.java84 GpsLocationProvider.java91 GPSLP 初始化流程92 定位流程133 位置信息通知處理164 AGPS流程205 下載xtra數(shù)據(jù)245 JNI com_android_server_location_GpsLocat
2、ionProvider.cpp261 jni流程262 JAVA與JNI交互接口函數(shù)293 JNI回調(diào)JAVA層的函數(shù)326 hal代碼32GPS調(diào)試經(jīng)驗(yàn)33Gps基礎(chǔ)知識1 gps簡介LBS: location base serviceGps: global position system由24顆衛(wèi)星組成,分布在6條交點(diǎn)互隔60度的軌道面上,精度約為10米,軍民兩用(美國)Glonass:由24顆衛(wèi)星組成,精度在10米左右(俄羅斯)伽利略系統(tǒng):由30顆衛(wèi)星組成,定位誤差不超過1米,主要為民用(歐盟)北斗系統(tǒng):由5顆靜止軌道衛(wèi)星和30顆非靜止軌道衛(wèi)星組成(中國)2 GPS系統(tǒng)構(gòu)成-空間部分構(gòu)成
3、:GPS定位系統(tǒng)的空間部分是由24顆GPS工作衛(wèi)星所組成,這些GPS工作衛(wèi)星共同組成了GPS衛(wèi)星星座,其中21顆為可用于導(dǎo)航的衛(wèi)星,3顆為活動的備用衛(wèi)星。這24顆衛(wèi)星分布在6個(gè)傾角為55°的軌道上繞地球運(yùn)行。衛(wèi)星的運(yùn)行周期約為12恒星時(shí)。每顆GPS工作衛(wèi)星都發(fā)出用于導(dǎo)航定位的信號。作用:GPS用戶正是利用這些衛(wèi)星信號來進(jìn)行工作的,GPS定位系統(tǒng)衛(wèi)星部分的作用就是不斷地發(fā)射導(dǎo)航電文。3 GPS系統(tǒng)構(gòu)成-控制部分構(gòu)成:由分布在全球的由若干個(gè)跟蹤站所組成的監(jiān)控系統(tǒng)所構(gòu)成,根據(jù)其作用的不同,這些跟蹤站又被分為主控站、監(jiān)控站和注入站。作用:主控站的作用是根據(jù)各監(jiān)控站對GPS的觀測數(shù)據(jù),計(jì)算出衛(wèi)
4、星的星歷和衛(wèi)星鐘的改正參數(shù)等,并將這些數(shù)據(jù)通過注入站注入到衛(wèi)星中去;同時(shí),它還對衛(wèi)星進(jìn)行控制,向衛(wèi)星發(fā)布指令,當(dāng)工作衛(wèi)星出現(xiàn)故障時(shí),調(diào)度備用衛(wèi)星,替代失效的工作衛(wèi)星工作;另外,主控站也具有監(jiān)控站的功能。注入站的作用是將主控站計(jì)算出的衛(wèi)星星歷和衛(wèi)星鐘的改正數(shù)等注入到衛(wèi)星中去。4 GPS系統(tǒng)構(gòu)成-用戶部分構(gòu)成:GPS定位系統(tǒng)的用戶部分由GPS接收機(jī)、數(shù)據(jù)處理軟件及相應(yīng)的用戶設(shè)備如計(jì)算機(jī)氣象儀器等所組成。如手機(jī)、導(dǎo)航儀等。作用:接收GPS衛(wèi)星所發(fā)出的信號,利用這些信號進(jìn)行導(dǎo)航定位等工作。5 GPS工作原理-定位原理GPS導(dǎo)航系統(tǒng)衛(wèi)星部分的作用就是不斷地發(fā)射導(dǎo)航電文。然而,由于用戶接受機(jī)使用的時(shí)鐘與衛(wèi)
5、星星載時(shí)鐘不可能總是同步,所以除了用戶的三維坐標(biāo)x、y、z外,還要引進(jìn)一個(gè)t即衛(wèi)星與接收機(jī)之間的時(shí)間差作為未知數(shù),然后用4個(gè)方程將這4個(gè)未知數(shù)解出來。所以如果想知道接收機(jī)所處的位置,至少要能接收到4個(gè)衛(wèi)星的信號。6 GPS工作原理-定位精度衛(wèi)星和接收機(jī)的鐘差大氣傳播延遲多路徑效應(yīng):如云層、天氣情況,衛(wèi)星廣播星歷誤差的影響根據(jù)經(jīng)驗(yàn):例如有7顆星,但是就是不能定位數(shù)據(jù),需要看底層log(高通qxdm)分析衛(wèi)星具體位置,查看7顆衛(wèi)星的數(shù)據(jù)是否都有效。因?yàn)楦鶕?jù)多路徑效應(yīng),很多衛(wèi)星的數(shù)據(jù)都是無效的,導(dǎo)致手機(jī)端不會采用這些衛(wèi)星的數(shù)據(jù),導(dǎo)致真正能使用的gps衛(wèi)星不到4顆(定位最少需要4顆)。28顆衛(wèi)星(其中
6、4顆備用)早已升空,分布在6條交點(diǎn)互隔60度的軌道面上,距離地面約20000千米。已經(jīng)實(shí)現(xiàn)單機(jī)導(dǎo)航精度約為10米,綜合定位的話,精度可達(dá)厘米級和毫米級。但民用領(lǐng)域開放的精度約為10米。7 GPS數(shù)據(jù)Ephemeris(星歷):Data by comparison is very precise orbital and clock correction for each SV and is necessary for precise positioning. each SV broadcasts only its own Ephemeris data. This data is valid fo
7、r a period of time (maybe several hours) as determined by information contained in the broadcast. The Ephemeris data is broadcast by each SV every 30 seconds.Almanac(年歷):Data is course orbital parameters for all SVs. Each SV broadcasts Almanac data for all SVs. This Almanac data is not very precise
8、and is considered valid for up to several months.NMEA:$信息類型,xxx,xxx,xxx,xxx,xxx,xxx,xxx,每行開頭的字符都是$,接著是信息類型,后面是數(shù)據(jù),用逗號隔開信息類型為:GPGSV:可見衛(wèi)星信息GPGLL:地理定位信息GPRMC:推薦最小定位信息GPVTG:地面速度信息GPGGA:GPS定位信息GPGSA:當(dāng)前衛(wèi)星信息 這里我們只解析GPRMC和GPGGA的信息GPRMC數(shù)據(jù)詳解:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6&g
9、t;,<7>,<8>,<9>,<10>,<11>,<12>*hh<1> UTC時(shí)間,hhmmss(時(shí)分秒)格式<2> 定位狀態(tài),A=有效定位,V=無效定位<3> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)<4> 緯度半球N(北半球)或S(南半球)<5> 經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)<6> 經(jīng)度半球E(東經(jīng))或W(西經(jīng))<7> 地面速率(0
10、00.0999.9節(jié),前面的0也將被傳輸)<8> 地面航向(000.0359.9度,以真北為參考基準(zhǔn),前面的0也將被傳輸)<9> UTC日期,ddmmyy(日月年)格式<10> 磁偏角(000.0180.0度,前面的0也將被傳輸)<11> 磁偏角方向,E(東)或W(西)<12> 模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效) 解析內(nèi)容:$GPRMC,030254.00,A,2232.79596,N,11355.90127,E,0.028
11、,120313,1. 時(shí)間,這個(gè)是格林威治時(shí)間,是世界時(shí)間(UTC),我們需要把它轉(zhuǎn)換成北京時(shí)間(BTC),BTC和UTC差了8個(gè)小時(shí),要在這個(gè)時(shí)間基礎(chǔ)上加8個(gè)小時(shí)。2. 定位狀態(tài),在接收到有效數(shù)據(jù)前,這個(gè)位是V,后面的數(shù)據(jù)都為空,接到有效數(shù)據(jù)后,這個(gè)位是A,后面才開始有數(shù)據(jù)。3. 緯度,我們需要把它轉(zhuǎn)換成度分秒的格式,計(jì)算方法:如接收到的緯度是:2232.795962232.79596 / 100 = 22.3279596 可以直接讀出22度2232.7959622 * 100 = 3
12、2.79596 可以直接讀出32分32.7959632 = 0.79596 * 60 = 47.7576 讀出47秒所以緯度是:22度32分47秒。4. 南北緯,這個(gè)位有兩種值N(北緯)和S(南緯)5. 經(jīng)度的計(jì)算方法和緯度的計(jì)算方法一樣6. 東西經(jīng),這個(gè)位有兩種值E(東經(jīng))和W(西經(jīng))7. 速率,這個(gè)速率值是 海里/時(shí),單位是節(jié),要把它轉(zhuǎn)換成千米/時(shí),根據(jù):1海里 = 1.85公里,把得到的速率乘以1.85。8. 航向,指的是偏離正北的角度9. 日期,這個(gè)日期是準(zhǔn)確的
13、,不需要轉(zhuǎn)換 GPGGA數(shù)據(jù)詳解:$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx例如:$GPGGA,030254.00,2232.79596,N,11355.90127,E,1,09,0.86,89.4,M,-2.7,M,*7D$GPGGA:起始引導(dǎo)符及語句格式說明(本句為GPS定位數(shù)據(jù));<1> UTC時(shí)間,格式為hhmmss
14、.sss;<2> 緯度,格式為ddmm.mmmm(第一位是零也將傳送);<3> 緯度半球,N或S(北緯或南緯)<4> 經(jīng)度,格式為dddmm.mmmm(第一位零也將傳送);<5> 經(jīng)度半球,E或W(東經(jīng)或西經(jīng))<6> 定位質(zhì)量指示,0=定位無效,1=定位有效;<7> 使用衛(wèi)星數(shù)量,從00到12(第一個(gè)零也將傳送)<8> 水平精確度,0.5到99.9<9&
15、gt; 天線離海平面的高度,-9999.9到9999.9米 M 指單位米<10> 大地水準(zhǔn)面高度,-9999.9到9999.9米 M 指單位米<11> 差分GPS數(shù)據(jù)期限(RTCM SC-104),最后設(shè)立RTCM傳送的秒數(shù)量<12> 差分參考基站標(biāo)號,從0000到1023(首位0也將傳送)。8 GPS定位方式冷啟動:衛(wèi)星數(shù)據(jù)溫啟動:衛(wèi)星數(shù)據(jù)+年歷數(shù)據(jù)熱啟動:衛(wèi)星數(shù)據(jù)+星歷數(shù)據(jù)+年歷數(shù)據(jù)Stan
16、dalone:冷啟動MSA:手機(jī)端收集數(shù)據(jù)發(fā)給運(yùn)營商的服務(wù)器計(jì)算,然后給回經(jīng)緯度MSB:手機(jī)端收到數(shù)據(jù)在手機(jī)里面計(jì)算,一般用的這個(gè)方式AGPS:衛(wèi)星數(shù)據(jù)+其他定位數(shù)據(jù)其他定位數(shù)據(jù): XTRA:高通服務(wù)器提供,通過wifi或者業(yè)務(wù)數(shù)據(jù)下載,一般是年歷信息 WIFI、數(shù)據(jù)流量:比如用的是LTE網(wǎng)絡(luò),網(wǎng)絡(luò)會連接小區(qū)附近的基站,這個(gè)基站信息會被百度、高德 server記錄,當(dāng)手機(jī)使用百度或者高德地圖的時(shí)候,就會用wifi或者數(shù)據(jù)流量去百度或者高德server去下載這個(gè)基站對應(yīng)的信息,所以在代碼里面會有百度server的信息。 基站:基站廣播的消息里面包含該基站的經(jīng)緯度和時(shí)區(qū) SUPL:google的g
17、ps服務(wù)器,國內(nèi)不能用了 PDE:電信運(yùn)營商的gps服務(wù)器GPS代碼框架:1 代碼框架Framework: frameworks/base/location/java/android/locationLocation framework代碼Frameworks/base/services/java/com/android/server/SystemServer.java向ServiceManager中添加LocationManagerService,F(xiàn)rameworks/base/services/core/java/com/android/server/LocationManage
18、rService.javaLocationManagerServidcebase/services/core/java/com/android/server/location/GpsLocationProvider.java調(diào)用jni代碼com_android_server_location_GpsLocationProvider.cppJNI: /framework/base/services/jni/com_android_server_location_GpsLocationProvider.cppGps jni 代碼,里面有很多callback函數(shù)傳遞給hal層,
19、同時(shí)也能使用GpsLocationProvider.java中的java代碼HAL: hardware/qcom/gps/msm8960/Gps hal2 SystemServer.java/apps/android-5.0.2/frameworks/base/services/java/com/android/server/SystemServer.java添加location service 862 if (!disableLocation) 863 try 864 Slog.i(TAG, "Location Manager"); 865 location
20、= new LocationManagerService(context); 866 ServiceManager.addService(Context.LOCATION_SERVICE, location); 867 catch (Throwable e) 868 reportWtf("starting Location Manager", e); 869 SystemServer.java 中啟動的,也就是系統(tǒng)啟動之后,在SystemServer.java中,向ServiceManager中添加LocationManagerService,添加完服務(wù)之后,fi
21、nal LocationManagerService locationF = location; 賦值給locationF 1254 try 1255 if (locationF != null) locationF.systemRunning(); 1256 catch (Throwable e) 1257 reportWtf("Notifying Location Service running", e);1258 判斷服務(wù)是否正常,如果正常就調(diào)用systemRunning方法3 LocationManagerService.java根據(jù)上一節(jié)的systemRunnin
22、g方法,就會走到LocationManagerService.java文件中,調(diào)用loadProvidersLocked()方法: 398 private void loadProvidersLocked() 399 / create a passive location provider, which is always enabled 400 PassiveProvider passiveProvider = new PassiveProvider(this); 401 addProviderLocked(passiveProvider); 402 mEnabledProviders.ad
23、d(passiveProvider.getName(); 403 mPassiveProvider = passiveProvider; 404 / Create a gps location provider 405 GpsLocationProvider gpsProvider = new GpsLocationProvider(mContext, this, 406 mLocationHandler.getLooper();創(chuàng)建gpsProvider對象,這個(gè)對象很重要,是gps數(shù)據(jù)的提供者,根據(jù)gps的原理,gps數(shù)據(jù)從衛(wèi)星得到或者從網(wǎng)絡(luò)得到,provider是衛(wèi)星提供的 407 40
24、8 if (GpsLocationProvider.isSupported() 409 mGpsStatusProvider = gpsProvider.getGpsStatusProvider(); 410 mNetInitiatedListener = gpsProvider.getNetInitiatedListener(); 411 addProviderLocked(gpsProvider); 412 mRealProviders.put(LocationManager.GPS_PROVIDER, gpsProvider);添加到mRealProviders鏈表中,類型為GPS_PR
25、OVIDER 413 . 438 / bind to network provider 439 LocationProviderProxy networkProvider = LocationProviderProxy.createAndBind( 創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)provider, 440 mContext, 441 LocationManager.NETWORK_PROVIDER, 442 NETWORK_LOCATION_SERVICE_ACTION, 443 ernal.R.bool.config_enableNetworkLocationOverlay, 4
26、44 ernal.R.string.config_networkLocationProviderPackageName, 445 ernal.R.array.config_locationProviderPackageNames, 446 mLocationHandler); 447 if (networkProvider != null) 448 mRealProviders.put(LocationManager.NETWORK_PROVIDER, networkProvider);添加到鏈表mRealProviders中,類型為
27、NETWORK_PROVIDER,指數(shù)據(jù)網(wǎng)絡(luò) 449 mProxyProviders.add(networkProvider); 450 addProviderLocked(networkProvider); 451 else 452 Slog.w(TAG, "no network location provider found"); 453 為了兼容后續(xù)的一些技術(shù),android有兼容很多其他的定位技術(shù),比方說地理圍欄(通過基站定位)等,代碼里面已經(jīng)做好兼容接口了,比方說: 455 / bind to fused provider 456 LocationProvider
28、Proxy fusedLocationProvider = LocationProviderProxy.createAndBind( 457 mContext, 458 LocationManager.FUSED_PROVIDER, 459 FUSED_LOCATION_SERVICE_ACTION, 460 ernal.R.bool.config_enableFusedLocationOverlay, 461 ernal.R.string.config_fusedLocationProviderPackageName, 462 co
29、ernal.R.array.config_locationProviderPackageNames, 463 mLocationHandler); 464 if (fusedLocationProvider != null) 465 addProviderLocked(fusedLocationProvider); 466 mProxyProviders.add(fusedLocationProvider); 467 mEnabledProviders.add(fusedLocationProvider.getName(); 468 mRealProviders.pu
30、t(LocationManager.FUSED_PROVIDER, fusedLocationProvider);/融合定位技術(shù) 469 else 470 Slog.e(TAG, "no fused location provider found", 471 new IllegalStateException("Location service needs a fused location provider"); 472 4 GpsLocationProvider.java1 GPSLP 初始化流程GpsLocationProvider gpsProvi
31、der = new GpsLocationProvider(mContext, this, 406 mLocationHandler.getLooper();創(chuàng)建GpsLP對象,構(gòu)造函數(shù)中重要函數(shù)如下: /* NTP即Network Time Protocol,它是一種用來同步計(jì)算機(jī)時(shí)間的協(xié)議。該時(shí)間的源是UTC。在下面這行代碼中,GpsLP 將創(chuàng)建一個(gè)NtpTrustedTime對象,該對象采用SNTP協(xié)議來和指定的NTP服務(wù)器通信以獲取準(zhǔn)確的時(shí)間
32、。 */ mNtpTime = NtpTrustedTime.getInstance(context); mILocationManager = ilocationManager; &
33、#160; / 加載GPS配置文件,下文詳細(xì)介紹函數(shù)reloadGpsProperties mProperties = new Properties(); reloadGpsProperties(mContext, mProperties);&
34、#160; / 主要處理來自GPS HAL層通知的NI事件 mNIHandler = new GpsNetInitiatedHandler(context, &
35、#160; mNetInitiatedListener,
36、60; mSuplEsEnabled);
37、; / construct handler, listen for events mHandler = new ProviderHandler(looper); 創(chuàng)建消息處理handler,以下有詳細(xì)描述 /SUPL的初始化可以由兩種特殊的短信觸發(fā),下文將簡單介紹
38、listenForBroadcasts函數(shù) listenForBroadcasts(); / 對PASSIVE_PROVIDER添加監(jiān)聽 mHandler.post(new Runnable()
39、0; Override public void run()
40、; LocationManager locManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
41、 final long minTime = 0; final float minDistance = 0;
42、; final boolean oneShot = false; LocationRequest request =
43、0;LocationRequest.createFromDeprecatedProvider( LocationManager.PASSIVE_PROVIDER,
44、0; minTime, minDistance,
45、160; oneShot); request.setHideFromAppOps(true);
46、60; /接收來自NetworkLP的位置更新通知 /當(dāng)GpsLP收到來自NetworkLP的位置信息后,將把他們傳給GPS HAL層去處理
47、; locManager.requestLocationUpdates( request,
48、; new NetworkLocationListener(),
49、 mHandler.getLooper(); 消息處理handler會處理各種消息,比方說注入時(shí)間,更新位置信息,enable/disable gps等,而這些處理的函數(shù)都是native函數(shù),調(diào)用到j(luò)ni中,然后由jni調(diào)用到hal,我們在接下來的開始導(dǎo)航的流程中可以查看到他們的使用方法1934 private final class ProviderHandl
50、er extends Handler 1935 public ProviderHandler(Looper looper) 1936 super(looper, null, true /*async*/);1937 1938 1939 Override1940 public void handleMessage(Message msg) 1941 int message = msg.what;1942 switch (message) 1943 case ENABLE:1944 if (msg.arg1 = 1) 1945 handleEnable();1946 else 1947 handl
51、eDisable();1948 1949 break;1950 case SET_REQUEST:1951 GpsRequest gpsRequest = (GpsRequest) msg.obj;1952 handleSetRequest(gpsRequest.request, gpsRequest.source);1953 break;1954 case UPDATE_NETWORK_STATE:1955 handleUpdateNetworkState(msg.arg1, (NetworkInfo)msg.obj);1956 break;1957 case INJECT_NTP_TIME
52、:1958 handleInjectNtpTime();1959 break;1960 case DOWNLOAD_XTRA_DATA:1961 if (mSupportsXtra) 1962 handleDownloadXtraData();1963 1964 break;1965 case INJECT_NTP_TIME_FINISHED:1966 mInjectNtpTimePending = STATE_IDLE;1967 break;1968 case DOWNLOAD_XTRA_DATA_FINISHED:1969 mDownloadXtraDataPending = STATE_
53、IDLE;1970 break;1971 case UPDATE_LOCATION:1972 handleUpdateLocation(Location)msg.obj);1973 break;1974 1975 if (msg.arg2 = 1) 1976 / wakelock was taken for this message, release it1977 mWakeLock.release();1978 1979 1980 ;開始監(jiān)聽廣播,通過IntentFilter 設(shè)置需要監(jiān)聽的特殊類型的數(shù)據(jù),特定類型會有不同定義。比方說DATA_SMS_RECEIVED_ACTION
54、類型,然后會設(shè)置相應(yīng)的String action = intent.getAction()來獲取intent,通過類型的不同來甄別不同intent,從而走向不同的處理函數(shù)private void listenForBroadcasts() IntentFilter intentFilter = new IntentFilter();
55、160; /SUPL INIT流程可以由一條特殊的數(shù)據(jù)短信觸發(fā)。數(shù)據(jù)短信與文本短信不同,下面的這個(gè)IntentFilter將接收發(fā)往 /的數(shù)據(jù)短信。7275為OMA-SUPL使用的端口號 intentFilter.addAction(Intents.DATA_SMS_RECEIVED_ACTION);
56、 intentFilter.addDataScheme("sms"); intentFilter.addDataAuthority("localhost","7275"); mConte
57、xt.registerReceiver(mBroadcastReceiver, intentFilter, null, mHandler); /SUPL INIT也可由WAP推送短信觸發(fā),該短信包含的數(shù)據(jù)類型為MIME中的"application/vnd.omaloc-supl-init"
58、 intentFilter = new IntentFilter(); intentFilter.addAction(Intents.WAP_PUSH_RECEIVED_ACTION); try
59、; intentFilter.addDataType("application/vnd.omaloc-supl-init"); catch (IntentFilter.MalformedMimeTypeException e) &
60、#160; Log.w(TAG, "Malformed SUPL init mime type"); mContext.registerReceiver(mBroadcastReceiv
61、er, intentFilter, null, mHandler); /監(jiān)聽ALARM事件、網(wǎng)絡(luò)事件等 intentFilter = new IntentFilter();
62、 intentFilter.addAction(ALARM_WAKEUP); 該intent處理中會啟用GPSLP導(dǎo)航 intentFilter.addAction(ALARM_TIMEOUT); 該intent處理中停止GPSLP導(dǎo)航 intentFilter.addAction(ConnectivityManager.CONNECTIVITY_AC
63、TION); intentFilter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED); intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
64、60;intentFilter.addAction(Intent.ACTION_SCREEN_ON); intentFilter.addAction(SIM_STATE_CHANGED); / TODO: remove the use TelephonyIntents. We are
65、;using it because SIM_STATE_CHANGED / is not reliable at the moment. intentFilter.addAction(TelephonyIntents.ACTION_SUBINFO_CONTENT_CHANG
66、E); intentFilter.addAction(TelephonyIntents.ACTION_SUBINFO_RECORD_UPDATED); mContext.registerReceiver(mBroadcastReceiver, intentFilter, null, mHandler);
67、60; 當(dāng)GpsLP收到指定的數(shù)據(jù)短信或WAP推送短信后,checkSmsSuplInit或checkWapSuplInit函數(shù)將被調(diào)用。這兩個(gè)函數(shù)的功能比較簡單,就是將短信的內(nèi)容傳遞到GPS HAL層,下面是它們的代碼:private void checkSmsSuplInit(Intent intent) SmsMessage messages = Intents.getMessagesFro
68、mIntent(intent); for (int i=0; i <messages.length; i+) byte supl_init = messagesi.getUserData(); native_agps_ni_message(supl_init,supl_init.length); privat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度藥物運(yùn)載系統(tǒng)藥品市場分析及競爭策略分析報(bào)告
- 2024版?zhèn)€體運(yùn)輸戶與大車司機(jī)合作協(xié)議
- 墊層防水施工方案
- 2025年度個(gè)人醫(yī)療借款擔(dān)保合同模板2篇
- 2025年度社區(qū)便利店酒水新品引進(jìn)及銷售合作協(xié)議3篇
- 2025年新型打樁技術(shù)勞務(wù)分包合同范本4篇
- 二零二五版藥品質(zhì)量檢驗(yàn)試劑定制研發(fā)合同3篇
- CECT品牌定位及傳播策略
- 2024中考模擬考試語文試卷(一模)含答案
- 2025年模具行業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)合同4篇
- 個(gè)人頂賬房合同范例
- 安徽省淮南四中2025屆高二上數(shù)學(xué)期末統(tǒng)考模擬試題含解析
- 保險(xiǎn)專題課件教學(xué)課件
- 牛津上海版小學(xué)英語一年級上冊同步練習(xí)試題(全冊)
- 室上性心動過速-醫(yī)學(xué)課件
- 建設(shè)工程法規(guī)及相關(guān)知識試題附答案
- 中小學(xué)心理健康教育課程標(biāo)準(zhǔn)
- 四年級上冊脫式計(jì)算400題及答案
- 新課標(biāo)人教版小學(xué)數(shù)學(xué)六年級下冊集體備課教學(xué)案全冊表格式
- 人教精通版三年級英語上冊各單元知識點(diǎn)匯總
- 教案:第三章 公共管理職能(《公共管理學(xué)》課程)
評論
0/150
提交評論