2010-09-25 3 views
4

Привет, я разработал приложение, которое установит координаты (широта и долгота). И он должен показать мое местоположение, поскольку я нахожусь в этих координатах. Он похож на местоположение spoofer. http://www.androidzoom.com/android_applications/tools/location-spoofer_gkmc.html Но я не могу этого сделать .. вот мой код ... Пожалуйста, помогите мне.Поддельное местоположение с использованием GPS в android

public class Mock extends MapActivity 
{  
    private LocationManager lm; 
    private LocationListener locationListener; 

    private MapView mapView; 
    String mocLocationProvider; 
    private MapController mc; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    //---use the LocationManager class to obtain GPS locations--- 
    lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);  

    locationListener = new MyLocationListener(); 

    mocLocationProvider=LocationManager.GPS_PROVIDER; 

    lm.addTestProvider(mocLocationProvider, false, false,false, false, true, true, true, 0, 5); 
    lm.setTestProviderEnabled(mocLocationProvider,true); 
    lm.requestLocationUpdates(mocLocationProvider,0,0,locationListener); 


    mapView = (MapView) findViewById(R.id.mapview1); 
    mc = mapView.getController(); 

    } 

    @Override 
    protected boolean isRouteDisplayed() { 
    // TODO Auto-generated method stub 
    return false; 
    }   

    private class MyLocationListener implements LocationListener 
    { 
    @Override 
    public void onLocationChanged(Location loc) { 

     loc = new Location(mocLocationProvider); 

     Double latitude = 1.352566007; 
     Double longitude = 103.78921587; 

     //Double altitude = Double.valueOf(parts[2]); 

     loc.setLatitude(latitude); 
     loc.setLongitude(longitude); 
     loc.setTime(System.currentTimeMillis()); 
     lm.setTestProviderLocation(mocLocationProvider, loc); 


      mc.setZoom(16);     
      mapView.invalidate(); 

    } 

    @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) { 
     // TODO Auto-generated method stub 
    } 
}  
} 

ответ

2
+1

HI kwa ... Я хочу сделать это на реальном устройстве не на эмуляторе – user458295

+0

Does AnyOne Помогите мне ..? – user458295

+5

Downvote для BGS - без обид. Должно было быть сделано по вопросу пользователя здесь. Да, вы можете сделать это на реальном устройстве. Просто включите «макет местоположения» в настройках и следуйте руководству по первому URL в этом ответе в разделе о том, как запустить DDMS. Вы также должны включить USB-отладку, чтобы компьютер распознал устройство. Обязательно установите USB-драйверы OEM для вашего телефона (что, я уверен, вы уже сделали). – Qix

0

Вы в основном устанавливаете координаты на реальном устройстве так же, как в эмуляторе, используя DDMS в Eclipse.

Просто убедитесь, что вы включили «поддельные местоположения» на своем устройстве. Вы можете найти настройку в Настройки> Приложения> Разработка> Разрешить макет местоположения.

+1

Да, я включил его ... Но его не работает .. – user458295

Смежные вопросы