2012-07-27 59 views
0

衆所周知,一些Android手機沒有Google服務,比如華爲,中興和三星等設備,所以當使用android.location.LocationManager並嘗試使用NetworkProvider請求當前位置時,它總是沒有響應。 GPSProvider(「gps」)工作正常,但在裏面需要太多時間。因此,我現在正在使用第三方位置提供商,這可能不夠準確,不適用於備份計劃。如何檢查當前的Android設備是否具有Google的位置服務?

問題是,如果設備沒有Google服務,我不想等待超時時間並應用備份,在應用程序初始化時是否有任何方法可以檢測到這種情況?

我在Google服務響應之後爲當前設置了一個標誌,我不知道是否有其他選擇。

謝謝:)

+0

您正在使用哪種第三方服務? – 2015-12-27 16:01:27

回答

2

最後我用以下策略:

  1. 開始找到既谷歌的和第三方供應商,等到這兩個供應商的回報(或超時)。

  2. 檢查結果,如果Google的服務失敗,則在偏好設置中添加一個布爾標誌,以表明Google定位服務在此設備中不可用,並且如果標誌已設置,請勿嘗試使用Google的位置服務。

  3. 幾天後,再次運行上述步驟重新檢查。

0

這是一個很好的問題。我從來沒有嘗試過。但是在LocationManager上有一個方法:

public List<String> getProviders (boolean enabledOnly) 

也許你可以使用它?

+0

謝謝〜,我已經在很早的時候嘗試過了。提供程序已啓用(可以在設置 - 某些設備中的位置中進行切換)。也許供應商沒有刪除設置,但刪除了功能〜_〜 – 2012-07-27 02:26:28

+0

啊,明白了。嗯,這是一個有趣的問題。 – Kaediil 2012-07-27 02:36:59

相關問題