当前位置: 移动技术网 > 移动技术>移动开发>Android > 02-android-模拟定位

02-android-模拟定位

2020年07月23日  | 移动技术网移动技术  | 我要评论
模拟位置数据使用模拟位置数据的基本流程:实例化LocationManager对象lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);添加TestProvider只允许一个应用程序使用模拟数据,如系统中有正使用的TestProvider,这时候直接添加会报错,因此向获取,如成功则直接使用,不成功,再添加,使用时只能使用gps_Provider3. 启用TestProviderlm.setTestProviderE

模拟位置数据

使用模拟位置数据的基本流程:

  1. 实例化LocationManager对象
    lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
  2. 添加TestProvider
    只允许一个应用程序使用模拟数据,如系统中有正使用的TestProvider,这时候直接添加会报错,因此向获取,如成功则直接使用,不成功,再添加,使用时只能使用gps_Provider

在这里插入图片描述
3. 启用TestProvider
lm.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true);
lm.setTestProviderStatus(LocationManager.GPS_PROVIDER,LocationProvider.AVAILABLE,null, System.currentTimeMillis());
4. 创建Location对象,并设定属性值
Location newLocation = new
Location(LocationManager.GPS_PROVIDER);
newLocation.setLatitude(39.820015);
newLocation.setLongitude(116.813752);
newLocation.setAccuracy(500);
newLocation.setTime(System.currentTimeMillis());

5、一定要设置nonasecond单位的值,否则是没法持续收到监听的newLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());

6、注册监听完成后再进行模拟定位点的设置,否则接受不到回调
lm.setTestProviderLocation(LocationManager.GPS_PROVIDER, newLocation);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlistener);

7、需要在AndroidManifest.xml文件中添加「获取模拟定位信息」权限。

在这里插入图片描述

不同版本Android studio可能报错,按提示会自动加到debug清单文件中。

8、开启系统允许模拟位置开关
(1)Android 6.0以下:有【允许模拟位置】选项,直接打开即可,也可通过以下代码进行判断是否打开,不建议使用。
boolean canMockPosition = Settings.Secure.getInt(getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0

(2)Android6.0及以上:没有【允许模拟位置】选项,弃用了Settings.Secure.ALLOW_MOCK_LOCATION,无法通过上面的方法判断。增加了【选择模拟位置信息应用】的方法,需要选择使用模拟位置的应用。
代码直接使用暂无。为什么?
需要打开开发者选项。

打开android studio模拟器的开发者权限步骤如下:
step1:找到安卓的setting点开;
step2:点击System,再找到关于手机,手机版本连续点击7次,返回上一层就有一个开发者选项;
step3:点击Developer options,找到select mock location app,点击需要模拟定位的app。

例子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

本文地址:https://blog.csdn.net/weixin_44123412/article/details/107494727

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网