更新时间:2023-10-11 GMT+08:00

模拟定位信息

功能介绍

云手机模拟定位信息包括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地理编码/逆地理编码目前仅支持中国大陆、港澳地区。
  • 立即生效。