2011-09-03 84 views
2

我試圖用模擬位置的手機,但它顯示例外,機器人如何設置一個假的位置打電話

我的代碼如下,

Location location = new Location(MOCK_PROVIDER_NAME); 
         location.setLatitude(latitude); 
         location.setLongitude(longitude); 
         location.setTime(new Date().getTime()); 
         locationManager.setTestProviderEnabled(MOCK_PROVIDER_NAME, true); 
         locationManager.setTestProviderLocation(MOCK_PROVIDER_NAME, location); 
         Toast.makeText(getBaseContext(),"Latitude: "+location.getLatitude()+" Longitude: "+location.getLongitude(), Toast.LENGTH_SHORT) 
         .show(); 

我給MOCK_PROVIDER_NAME =「GPS」,但這一個也沒有考慮我也嘗試過「網絡」和「惡搞」,但它不工作。

我要去哪裏錯,有人告訴我。 謝謝

回答

0

這裏是你的問題的兩個可能的原因:

安全性異常:

如果ACCESS_MOCK_LOCATION權限不存在或沒有啓用 Settings.Secure.ALLOW_MOCK_LOCATION系統設置

或者拋出IllegalArgumentException:

如果具有給定名稱的提供商已經存在

我從這些報價:http://developer.android.com/reference/android/location/LocationManager.html#addTestProvider

如果不是那些例外,你得到的一個,然後給我們的堆棧跟蹤你錯誤以及堆棧跟蹤在代碼中顯示的任何行都是問題。

我在猜測您沒有聲明清單中的權限和/或「允許模擬位置」在開發設置中處於關閉狀態。

+0

我給了權限,並且還啓用了手機中的MOCK_LOCATION,它顯示參數「gps」,「network」的例外 – Jyosna

+0

如果具有給定名稱的提供程序已存在,則會得到IllegalArgumentException。如果沒有解決它,你會得到什麼例外? – Jakar

相關問題