模拟定位信息
功能介绍
云手机模拟定位信息包括GPS数据、基站信息、WiFi BSSID信息,并提供地理编码/逆地理编码功能。
使用方法
- GPS数据和基站信息的注入
在手机adb shell环境里执行echo "参数列表(参数之间用“:”分割)" > /data/gps/fifo。
echo "longitude=113.370592:latitude=23.123642:cell_type=GSM:mcc=460:mnc=2:lac=37107:cid=263496967" > /data/gps/fifo
- GPS数据持续注入(建议使用非阻塞注入方式)
使用自有或第三方SDK应用代码持续注入GPS数据,需使用O_NONBLOCK非阻塞方式注入。
举例:
#define GPSFifoName "/data/gps/fifo" if((fifo_fd = open(GPSFifoName, O_WRONLY | O_NONBLOCK)) < 0) { ALOGE("open fifo "%s" (write) fail, error = %s\n", GPSFifoName, strerror(errno)); return; } //注cmd参数间需要通过冒号“:”进行分割 char* cmd = "longitude=113.370592:latitude=23.123642:cell_type=GSM:mcc=460:mnc=2:lac= 37107:cid=263496967"; len = strlen(cmd); if(write(fifo_fd, cmd, len) != len) { ALOGE("%s: write "%s" to "%s" fail: %s", FUNCTION, cmd, GPSFifoName, strerror(errno)); }
- WiFi BSSID模拟
当前连接WIFI BSSID,可以通过设置属性com.cph.wifi.bssid进行模拟。
举例:
setprop com.cph.wifi.bssid 02:00:00:00:00:00
约束
- GPS数据和基站信息参数列表
表1 GPS数据 参数
说明
是否必须
缺省值
约束
latitude
纬度。
北纬为正,南纬为负。
必须
22.657501
取值范围:-90.000000~90.000000
单位:度(°)
longitude
经度。
东经为正,西经为负。
必须
114.055939
取值范围:-180.000000~180.000000
单位:度(°)
altitude
海拔高度
可选
51.0
单位:米
speed
速度
可选
0.0
单位:米
bearing
方向角。
0°表示正北方向,90°表示正东,180°表示正南,270°表示正西。
可选
30.0
取值范围:0.0~360.0
单位:度(°)
accuracy
定位精度
可选
90.0
单位:米
表2 基站信息 参数
说明
是否必须
约束
cell_type
基站类型
必须
可取值:GSM、CDMA、WCDMA、LTE
mcc
国家编码
可选
如460
mnc
基站移动网络代码
可选
针对CDMA,只有system id,注入时也使用mnc参数。
lac
基站区域码
必须
针对CDMA,只有network id,注入时也使用lac参数;
针对LTE,只有tac,注入时也使用lac参数。
cid
基站编号
必须
针对CDMA,只有base station id,注入时也使用cid参数;
针对LTE,只有ci,注入时也使用cid参数。
- 所有字符均为英文字符。
- GPS数据统一使用WGS84 坐标系统。
- LocationManager GPS_PROVIDER和NETWORK_PROVIDER均使用GPS的经纬度信息。
- Geocoder地理编码/逆地理编码目前仅支持中国大陆、港澳地区。
- 立即生效。