我正試圖通過編程方式解決GPS信號不可用時的問題。我想這樣做是爲了向其他應用程序提供模擬座標,例如谷歌地圖和其他應用程序。我試圖使用GPS_PROVIDER和NETWORK_PROVIDER,但只有後者我可以得到一個有效的谷歌地圖的新位置。但是,這隻適用於第一次提馬,如果我想重新修復更多的模擬位置谷歌地圖沒有看到任何改變......爲什麼? 我必須爲我想做的事情做一個服務?android:如何使用模擬(假)座標來修復GPS?
public void setLocation(double latitude, double longitude) {
//mocLocationProvider = LocationManager.GPS_PROVIDER;
mocLocationProvider = LocationManager.NETWORK_PROVIDER;
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.clearTestProviderEnabled(mocLocationProvider);
lm.requestLocationUpdates(mocLocationProvider,0,0,new llistener());
lm.addTestProvider(mocLocationProvider, false, false, false, false, false, false, false, 0, 10);
lm.setTestProviderEnabled(mocLocationProvider, true);
Location loc = new Location(mocLocationProvider);
loc.setTime(System.currentTimeMillis());
loc.setLatitude(latitude);
loc.setLongitude(longitude);
loc.setAccuracy(10);
lm.setTestProviderStatus(mocLocationProvider, LocationProvider.AVAILABLE,null, System.currentTimeMillis());
lm.setTestProviderLocation(mocLocationProvider, loc);
}
和位置監聽器
public class llistener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
}
感謝
你有解決這個問題嗎?我也可以只設置一次模擬位置。 –