android 如何写模拟定位程序

2025-11-05 15:54:08

1、获取位置对象

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

android 如何写模拟定位程序

2、获取位置提供者对象

LocationProvider provider = locationManager.getProvider(LocationManager.GPS_PROVIDER);

android 如何写模拟定位程序

3、添加一个模拟位置提供者

locationManager.addTestProvider(

    provider.getName()

    , provider.requiresNetwork() // 请求网络

    , provider.requiresSatellite() // 请求卫星

    , provider.requiresCell() // 基站网络

    , provider.hasMonetaryCost() // 收费还是免费

    , provider.supportsAltitude() // 支持高度信息

    , provider.supportsSpeed() // 支持速度信息

    , provider.supportsBearing() // 支持方向信息

    , provider.getPowerRequirement() // 电源需求

, provider.getAccuracy() // 经度

);

android 如何写模拟定位程序

4、模拟一个定的定位的位置

Location location = new Location(LocationManager.GPS_PROVIDER);

 

location.setAccuracy(0);

 

location.setSpeed(0);

 

location.setBearing(0);

 

location.setLatitude(31.23491);

 

location.setLongitude(121.474755);

 

location.setAccuracy(0);

 

location.setTime(System.currentTimeMillis());

 

location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());

android 如何写模拟定位程序

5、开启模拟位置提供者

 

locationManager.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true);

 

locationManager.setTestProviderStatus(LocationManager.GPS_PROVIDER,

 

        LocationProvider.AVAILABLE,

 

        null,

 

        System.currentTimeMillis()

 

);

设置模拟位置

 

locationManager.setTestProviderLocation(LocationManager.GPS_PROVIDER, location);

android 如何写模拟定位程序

6、获取刚才模拟的位置

 

location = (Location) locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);

StringBuilder sb = new StringBuilder();

 

sb.append("位置信息:\n");

 

sb.append("经度:");

 

sb.append(String.valueOf(location.getLongitude()));

 

sb.append("\n纬度:");

 

sb.append(String.valueOf(location.getLatitude()));

 

sb.append("\n高度:");

 

sb.append(String.valueOf(location.getAltitude()));

 

sb.append("\n速度:");

 

sb.append(String.valueOf(location.getSpeed()));

 

sb.append("\n方向:");

 

sb.append(String.valueOf(location.getBearing()));

 

String info = sb.toString();

 

Toast.makeText(Main.this, info, Toast.LENGTH_LONG).show();

android 如何写模拟定位程序

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢