2012-08-24 93 views
1

我試圖讓我的應用程序選擇GPS提供商。方法getBestProvider()產生網絡提供者並且方法getAllProviders()也產生三個網絡提供者。 奇怪的是,GPS在我的Samsung GTS5360設備中啓用,這也通過isProviderEnabled(LocationManager.GPS_PROVIDER)調用證明。我正在使用Android 2.3.6。Android:從未選擇GPS提供商。只有網絡提供商目前

我的清單文件同時具有權限(ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION)。我還實現了一個GpsStatus偵聽器,我將其添加到我的locationManager對象以偵聽GPS_EVENT_SATELLITE_STATUS事件,但至今沒有任何事情發生。

當我運行其他嵌入式GPS應用程序時,GPS工作。我有清澈的天空條件,坐在我的陽臺上。

任何有關可能發生的事情的建議都非常值得歡迎。如有必要,我可以發佈我的代碼。

+0

「getAllProviders()也產生三個網絡提供者」 - 只有一個「NETWORK_PROVIDER」。是什麼讓你認爲你從'getAllProviders()'返回的'List '中得到了三次字符串「NETWORK_PROVIDER」? – CommonsWare

+0

你是如此正確。 getAllProviders()中的for循環返回0)network,1)passive和2)gps。我的錯! – goseib

+0

對於'getBestProvider()',我猜你的'Criteria'中的某些東西導致GPS不是一個有效的選擇。 – CommonsWare

回答

0

CommonsWare爲我的問題提供瞭解決方案。通過設置正確的標準ACCURACY_FINE和POWER_LOW,GPS提供商成爲首選供應商。榮譽CommonsWare!