【问题标题】:Fake location using GPS in android在android中使用GPS伪造位置
【发布时间】:2011-09-07 02:36:56
【问题描述】:

您好,我正在开发一个可以设置坐标(纬度和经度)的应用。它必须显示我在那个坐标上的位置..它类似于位置欺骗器..http://www.androidzoom.com/android_applications/tools/location-spoofer_gkmc.html 但我没有这样做..这是我的代码..请任何人帮助我。

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
    }
}    
}

【问题讨论】:

    标签: android


    【解决方案1】:

    【讨论】:

    • HI kwa...我想在真实设备上而不是在模拟器上这样做
    • 投反对票给 BGS - 无意冒犯。应该在这里跟进用户的问题。是的,您可以在真实设备上执行此操作。只需在设置中启用“模拟位置”,然后按照如何运行 DDMS 下此答案中第一个 URL 中的指南进行操作。您还必须启用 USB 调试,计算机才能识别设备。确保已为您的手机安装了 OEM USB 驱动程序(我相信您已经完成了)。
    • 是的,我知道我迟到了大约一年,但我想有人会觉得这很有帮助。
    • 它是 Qix...它是...它是 2013 年,我确实觉得它很有用
    【解决方案2】:

    您基本上可以通过在 Eclipse 中使用 DDMS 以与在模拟器中相同的方式在真实设备上设置坐标。

    只需确保在您的设备中启用“虚假位置”即可。您可以在设置 > 应用程序 > 开发 > 允许模拟位置找到该设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      相关资源
      最近更新 更多