2011-10-30 60 views
0

我寫我的移動計算類的研究論文,這將經驗比較GPS接收器,Wi-Fi無線三角測量的水平和垂直定位精度,和手機信號塔針對已知的調查級GPS測量。爲了實現這一點,我需要測試每種方法,而不是相互合作來確定位置。有沒有辦法通過編程禁用網絡連接?我查看了android.location包中的Criteria class,但這些名稱暗示爲:「criteria」。我沒有在API文檔中找到任何可以讓我明確指定在確定地理位置時使用哪個提供程序的任何內容,也沒有在Google搜索中指定任何算法。禁用蜂窩網絡通信

編輯:難道就這麼簡單提供在LocationProvider class下面的方法真或假的價值?

requiresCell() 
requiresNetwork() 
requiresSatellite() 

回答

0

這在技術上是不選擇提供程序,但在我的DROID XI可以執行以下步驟禁用數據移動通過網絡:

設置>電池和數據管理>數據傳送>已啓用數據/背景資料

我應該能夠使用這種技術與LocationManager.NETWORK_PROVIDER(希望的DROID仿生)結合到蜂窩網絡和WiFi隔離。我會讓你們都知道它是如何運作的。

UPDATE

對於那些誰感興趣的話,我一直在進行研究多小時這個我的論文完成後也。這還沒有經過測試,但從我從文檔中收集的內容,可以通過使用android.net軟件包中的ConnectivityManager類以編程方式在網絡提供商之間切換。另外,可以通過android.net.wifi包中的WifiManager類以更多方式操作WiFi。

我還沒有機會將這些方法合併到同樣使用android.location包的應用程序中。不過,我認爲在您使用上述兩個類的方法來切換您想要的提供程序時,可以合併一些功能。然後,當這個方法被稱爲:

requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener) 

其中提供者是NETWORK_PROVIDER變量,變量將自動地假設這是預先切換的提供者。

1

那麼你可以得到我認爲最接近的是LocationManager.GPS_PROVIDERLocationManager.NETWORK_PROVIDER或兩者兼而有之。您可以將這些標記作爲過濾器輸入到LocationManagerrequestLocationUpdates()中。

嘗試執行LocationListeneronProviderEnabled()/onProviderDisabled()以查看您是否可以在WiFi和Cell Tower之間進一步過濾。

編輯:您可以取出SIM卡,只使用WiFi確定位置,反之亦然(禁用WiFi)強制使用塔。

+0

看起來LocationManager.NETWORK_PROVIDER「根據可用的蜂窩塔和WiFi接入點來確定位置」。它還表示,它需要「android的權限之一。permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION。「這是否意味着其中一種權限類型,即ACCESS_COARSE_LOCATION,對應於蜂窩網絡或Wi-Fi網絡?我認爲區分它們的唯一方法是使用標準。一個蜂窩網絡或一個Wi-Fi網絡都可以滿足一定的標準,所以這不是一個沒有錯誤的方法。 – baskinomics

+0

ACCESS_FINE_LOCATION意味着ACCESS_COARSE_LOCATION,因此對於網絡來說,如果你有ACCESS_FINE_LOCATION,那麼你不需要另一個ACCESS_FINE_LOCATION。主要用於GPS定位,沒有明確的方式將WiFi與塔分開,單元塔三角測量需要操作員的配合 – Jasoneer

+0

我在發佈之前沒有看到您的編輯,但這聽起來像是一種更全面的證明技術。 。 – baskinomics

相關問題