標籤:遇到 原理 app 許可權 manage 請求 定義 其他 問題
問題:我們是一個海外app,市場部去馬來西亞開啟那邊的市場,發現了一個問題,就是我們的app定位有問題,還是成都的定位,主要原因是在馬來西亞使用這個app,請求中帶的經緯度參數是成都的,導致伺服器返回了成都的定位。
一、Android定位方式
Android常用的三種定位方式有:基於GPS定位、基於基站定位、基於wifi定位
1)基於GPS定位
GPS定位需要GPS模組(硬體)的支援,沒有GPS模組是無法進行GPS定位的。
GPS定位最大的優點就是其定位精確度高;缺點就是耗電高、定位慢、室內和地下室基本定位不到。
2)基於基站定位
根據採集到手機所處基站資訊和手機相關資訊(MNC、MCC、LAC)進行定位,基站定位最大的優點就是:定位速度快,缺點就是:定位精度稍微較差,無網路訊號不能使用。
3)基於wifi定位:
和基站定位類似,根據當前裝置擷取的wifi資訊來進行定位。
可以從Androidmanifest.xml查看程式優先使用的定位方式:
android.permission.ACCESS_FINE_LOCATION → GPS定位
android.permission.ACCESS_COARSE_LOCATION → 網路定位
二、Android應用定位原理
LocationManager是用於管理Android的使用者定位服務,使用它來監聽擷取當前的位置資訊並定義要返回的資訊,如經緯度、方位等
注意點:
1、如果程式擁有開啟GPS的許可權,使用者佈建關閉GPS後但又擷取位置的需求則會自動開啟GPS來進行定位,定位後會自動關閉GPS;
2、定位時一定要設定逾時時間,要不然遇到定位不到的情況則會一直卡在定位上還無法退出使用其他功能;
3、如果逾時可以上一次定位的位置(LocationManager有方法可以得到上次定位的位置),如果上次定位位置為空白則提示使用者定位失敗。
三、測定位時該從哪些角度考慮
1、檢查三種定位方式定位是否能成功,定位精度準確且無報錯;
2、三種定位正交組合,檢查定位功能和定位精度;
3、程式有開啟GPS許可權時,關閉網路和GPS,檢查能否定位和定位精度;
4、定位失敗的兩種處理情況(失敗提示和是否返回上一次位置);
5、定位過程中與來電、短多媒體訊息、藍芽的衝突;
6、定位過程中與功能鍵互動;
7、不同網路環境(移動、聯通、電信中3G/2G)下的定位速度和精度;
8、不同環境(室內、室外、電梯)的定位和精度;
9、本地測試外地定位(DDMS類比)
特別是第9點,我這次就是坑了,沒測試到
Android定位測試(深坑)