2015-12-15 101 views
9

今天,當我正在嘗試我的代碼,幾個可疑的事情出現在我的腦海裏有關GPS提供商,GPS硬件,GPS圖標和罰款位置權限。Android的GPS提供商和GPS圖標

我在Samsung galaxy s3,Htc one m8上觀察了我的代碼和gps圖標。和GPS是禁用

mLocationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE); 
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000 * 10, 0, this, Looper.myLooper()); 
... 
@Override 
public void onLocationChanged(Location location) { 
    mListenerRef.get().onLocationChanged(location); 
} 

銀河S3 - 全球定位系統圖標沒有出現,也沒有火onLocationChanged方法。 (那好吧)

的HTC One M8 - 全球定位系統圖標出現,眨眼,併發射 onLocationChanged(怎麼會呢?)

這時問題彈出

  • 是否ACCESS_FINE_LOCATION許可給應用程序覆蓋某些設備上的GPS狀態?
  • 那麼,應用程序可以接收位置,甚至gps禁用?

然後我啓用了星系S3

(第2分鐘)GPS圖標出現GPS(但不閃爍),發射onLocationChanged方法(怎麼會呢?)

(2分鐘後, )全球定位系統圖標出現(閃爍),發射onLocationChanged方法

問題再次彈出

  • gps圖標閃爍是什麼意思?任何extracanonical的意義?
  • 閃爍的平均GPS硬件試圖首先修復?
  • 或閃爍表示提供者觸發onLocationChanged方法?

回答

2

gps圖標閃爍是什麼意思?

- >我希望你知道GPS供應商不能在屋頂下工作。因此,從GPS提供商的屋頂下進行位置更新是完全不可能的。在這種情況下,如果用戶啓用GPS,則GPS閃爍圖標會向用戶顯示,通知用戶它正在搜索GPS。

- >一旦發現GPS圖標不再閃爍,我們將從GPS提供商獲取位置更新。

- >仍然是GPS圖標意味着Android系統已準備好從GPS提供商發送位置更新。


的HTC One M8 - 全球定位系統圖標出現,閃爍,併發射onLocationChanged

(怎麼會呢?) - >這聽起來有些不可思議獲得位置更新不啓用。我不確定你是如何確認你獲得位置更新的。

- >我會建議你檢查GPS提供程序是否已啓用,然後請求位置更新。

1

Fine_location權限將允許用戶從gps,wifi,網絡更新。所以如果gps不可用,仍然可以觸發onlocationChange(),因爲最近的位置可能已經通過wifi /網絡獲取。

(從鏈接報價:http://developer.android.com/guide/topics/location/strategies.html

注:如果您使用的兩個NETWORK_PROVIDER和GPS_PROVIDER,那麼你就需要請求只有ACCESS_FINE_LOCATION權限,因爲它包括兩個供應商的許可(許可ACCESS_COARSE_LOCATION包括許可只爲NETWORK_PROVIDER。 )

你的手機怎麼顯示不帶GPS的GPS圖標被啓用,我懷疑這是可能的。

1

用的HTC One(M7)應用必須使用GPS的權限,這讓「GPS ' F A ('GPS'='GPS Spoofer',AGPS [如果允許],使用WiFi和GPS的應用程序[因此位置幾乎總是立即可用],當然,電話的真正硬件GPS/GLONASS /伽利略/等)。

HTC UI有一個使用GPS的應用程序圖標(無論電話認爲提供程序是什麼,少數應用程序會檢查提供程序;它們不接受欺騙性的位置,EG:大多數訂閱應用程序,Google Play商店,abrev。GPS;))。

第二個圖標顯示硬件GPS。它在等待足夠的衛星時閃爍。在室內,沒有WiFi,AGPS,我可以在不到1/2分鐘內鎖定。

你可能想要檢查錯誤,當你得到你的LC消息,因爲如果你超過100 M關你不真的知道你在哪裏,可能沒有一個有效的位置;來自另一個(弱)衛星的待定計算可能足以讓你低於50 M誤差,此時你應該開始接受該位置爲有效(您的APP可能需要記錄帶有座標的誤差,然後可以用圓圈顯示位置代表不確定性)。

當開發人員希望確定購買最受歡迎的手機(因此您需要真正的硬件進行測試並支持最多的客戶),併購買帶有希望安裝Android的硬件的FEW手機應用程序控制 - 在你的情況下購買不同的手機 GPS硬件,對於其他人他們可能需要購買一些帶有不同相機硬件(或WiFi芯片等)的手機。

在Android的手機Mfgs版本,它們的用戶界面以及他們的GPS硬件操作方式(以及您已安裝的其他應用程序,如Spoofer)之間,您有很多變量,您的程序必須兼顧和很多情況下(錯誤返回),它必須允許在儘可能多的設備上進行相同的操作。