2013-10-09 90 views
1

我的問題標題是一種自我解釋。 當我想獲得我目前的位置,第一次(電話啓動後),我必須連接到互聯網。 獲取位置後,我的應用程序不再需要互聯網連接,更新發生得很好。 起初我以爲在我的代碼中缺少某些東西,但是我嘗試了內置地圖應用程序,並且它在啓用數據傳輸之前無法獲取我的位置。直到連接到互聯網才能獲取當前位置 - Android GPS

這對我來說似乎很奇怪,如果我能在第一個座標獲得後沒有網絡連接的情況下獲得座標,爲什麼我首先需要它?

所以我想知道兩兩件事, 1 - 有沒有解決辦法,讓我把我的第一個位置,而無需連接 和 2 - 如果沒有解決辦法是它的實際要求用戶啓用?我不是100%,但我很確定我不能以編程方式啓用數據。

想聽聽您的意見。 謝謝:)

+0

如果您沒有連接到互聯網,您如何計劃獲取設備的位置? – Razgriz

+1

檢查我的答案在這裏:http://stackoverflow.com/a/19175359/1318946 –

+0

WiFi或GPS必須啓用,以獲取當前位置。您可以要求用戶使用簡單的AlertDialog啓用其GPS,並使用startActivity將其引導至設置屏幕(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)); – kjurkovic

回答

1

Android設備上使用什麼所謂aGPS - a代表輔助。我所看到的最基本的解釋是,必須下載某些信息,並確定一個通用的廣泛位置,以便GPS傳感器知道在哪裏尋找衛星。一旦有了這些信息,它就可以找到GPS衛星,並且很好。恐怕你的應用無法繞過這個事實。

+0

非常感謝,這正是我想知道的, 在您看來,什麼是我最好的方式去關於這個,我應該讓用戶進入設置頁面,還是讓他知道數據需要打開,或者什麼都不做,就像標準地圖應用程序一樣? –

+0

我不相信。 AGPS僅用於更快的首次修復。GPS無需互聯網。然後它需要15s的45s。所以你確定如果你從來沒有互聯網的Android將永遠不會得到一個位置,但GPS已經放火?全球定位系統是爲埃裏工作而設計的,特別是在沙漠或森林中沒有其他方向可能的情況下。在那裏你將無法訪問互聯網。我認爲他簡單沒有啓用GPS(對於那個應用程序) – AlexWien

+0

沒有輔助數據,從衛星獲得信息需要12.5分鐘(gps衛星每秒發送50位數據(不是千位或兆位),而且,如果衛星信號中斷(這可能就像一座高大的建築物一樣簡單 - 它並不需要太多),它會拋出所有東西並重新開始。所以如果你不在城市並且在外面開放,最好的情況是12.5分鐘才能獲得第一個鎖。考慮到智能手機的移動性和典型使用區域,這幾乎可以說它沒有數據無法工作 –

0

有你在AndroidManifest.xml

定義<uses-permission android:name="android.permission.INTERNET" />如果是的話那麼請檢查您的網絡連接:

或者

檢查我的答案在這裏:Get current latitude and longtitude

+1

我有非常類似的代碼,唯一的區別是如果GPS不能獲得我的位置,我不會回到NETWORK_PROVIDER,你認爲這會有所幫助嗎? 雖然我不想使用網絡,但我需要更高的精度,因此只有在網絡獲得第一個座標後才能使用,然後使用GPS。 順便說一句,對於網絡供應商你需要一個數據連接?導致在這種情況下,它只會失敗的目的... –

+0

是的,你需要數據連接,如果你想要更高的準確性,那麼你必須去'GPS_PROVIDER' –

+0

是的,這是我的問題,我該如何直接使用GPS供應商沒有數據連接 –