# bdxt_sdk
**Repository Path**: elygg/bdxt
## Basic Information
- **Project Name**: bdxt_sdk
- **Description**: Android SDK
北斗星探软件二次开发的api
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 3
- **Created**: 2024-05-14
- **Last Updated**: 2026-03-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# RTK Library Android SDK
## 版本信息
当前版本:V1.0.1 (2026.03.10)
## 简介
RTK Library 是一个用于 Android 平台的高精度 GNSS 定位库。
**支持设备:** H10、H11、H20、C20
**差分方式:**
- 设备自带网络差分
- 手机网络差分
## 系统要求
- Android API Level 21 (Android 5.0) 及以上
- 支持蓝牙的设备
- 需要定位权限
## 安装教程
### 1. 添加 AAR 文件
将 `rtklib.aar` 复制到项目的 `app/libs` 目录下
### 2. 配置 build.gradle
在 `app/build.gradle` 中添加:
```gradle
android {
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
implementation(name: 'rtklib', ext: 'aar')
}
```
### 3. 添加权限
在 `AndroidManifest.xml` 中添加:
```xml
```
### 4. 导入类
```java
import com.mijia.rtk.LocationListener;
import com.mijia.rtk.handevice;
import com.mijia.rtk.ConfigDeviceInfoListener;
import com.mijia.rtk.SatelliteInfo;
```
## 快速开始
### 1. 连接设备
```java
// 连接蓝牙设备
handevice.connect("00:11:22:33:44:55");
// 断开连接
handevice.disconnect();
// 获取连接状态
int state = handevice.getConnectState();
```
### 2. 设置监听器
#### 位置监听器
```java
handevice.setLocationListener(new LocationListener() {
@Override
public void onLocationChanged() {
// 位置(经纬度)发生了变化
double lat = handevice.getLatitude();
double lon = handevice.getLongitude();
}
@Override
public void onRead(@NonNull String msg) {
// 读到新的数据
}
@Override
public void onReceiveSatellite(List list) {
// 卫星信息更新
// SatelliteInfo 包含:
// satType: 卫星类型 1:GPS 2:GLONASS 3:Galileo 4:BDS 6:QZSS
// signalid: 卫星频点
// prn: 卫星编号
// elev: 高度角(度)
// azi: 方位角(度)
// snr: 信噪比 00-99dB
}
@Override
public void onBluetoothConnStatusChange(int state) {
// 蓝牙状态变化
// 0: 初始状态,未连接
// 1: 正在连接
// 2: 成功连接
}
});
```
#### 配置监听器
```java
handevice.setConfigListener(new ConfigDeviceInfoListener() {
@Override
public void onGetCorsParaSuccess(@NonNull String ip, @NonNull String port,
@NonNull String user, @NonNull String password,
@NonNull String source) {
// 获取设备 CORS 配置成功
}
@Override
public void onSetCorsParaAck(int state) {
// 设置设备 CORS 账号回调
// 1: 设置成功 0: 设置失败
}
@Override
public void onSetPhoneCorsParaAck(int state) {
// 手机网络 CORS 设置回调
// 0: 连接成功
// 1: 用户名、密码、挂载点错误
// 2: IP、PORT 错误
// 3: 其他异常(如无 SIM 卡)
}
@Override
public void onDeviceInfo() {
// 设备信息更新
}
});
```
### 3. CORS 配置
```java
// 获取设备 CORS 配置
handevice.getAccount();
// 设置设备内置网络 CORS
handevice.setAccount(ip, port, user, password, source);
// 设置手机网络 CORS
handevice.setPhoneAccount(ip, port, user, password, source);
```
## 主要接口
### 获取 SDK 版本
```java
String version = handevice.getSdkVersion();
String versionInfo = handevice.getSdkVersionInfo();
```
### 获取定位信息
```java
double latitude = handevice.getLatitude();
double longitude = handevice.getLongitude();
int fixStatus = handevice.getFixStatus();
double hdop = handevice.getHdop();
int satsInUse = handevice.getnSatsInUse();
double age = handevice.getAge();
```
### 获取设备信息
```java
String sn = handevice.getUniqueSN();
String hardVer = handevice.getHardVer();
int battPower = handevice.getBattPower();
```
## API 接口说明
### 连接管理
| 接口 | 说明 | 返回值 |
|------|------|--------|
| connect(String address) | 连接蓝牙设备 | void |
| disconnect() | 断开连接 | void |
| getConnectState() | 获取连接状态 | int |
### SDK 信息
| 接口 | 说明 | 返回值 |
|------|------|--------|
| getSdkVersion() | 获取 SDK 版本号 | String |
| getSdkVersionInfo() | 获取 SDK 版本信息 | String |
### 定位信息
| 接口 | 说明 | 返回值 |
|------|------|--------|
| getLatitude() | 获取纬度 | double |
| getLongitude() | 获取经度 | double |
| getAltitude() | 获取海拔高 | double |
| getAltitudeCorr() | 获取高程异常值 | double |
| getFixStatus() | 获取定位状态 (0-5) | int |
| getSpeed() | 获取速度 | double |
| getDirection() | 获取航向 | double |
### 精度信息
| 接口 | 说明 | 返回值 |
|------|------|--------|
| getHdop() | 获取水平精度因子 | double |
| getVdop() | 获取垂直精度因子 | double |
| getPdop() | 获取位置精度因子 | double |
| getTdop() | 获取时间精度因子 | double |
| gethRMS() | 获取水平精度 | double |
| getvRms() | 获取垂直精度 | double |
### 卫星信息
| 接口 | 说明 | 返回值 |
|------|------|--------|
| getnSatsInView() | 获取可视卫星数 | int |
| getnSatsInUse() | 获取使用卫星数 | int |
| setSupportGps(boolean) | 设置支持 GPS | void |
| setSupportBds(boolean) | 设置支持北斗 | void |
| setSupportGal(boolean) | 设置支持伽利略 | void |
| setSupportGlo(boolean) | 设置支持格洛纳斯 | void |
| setSupportQzss(boolean) | 设置支持 QZSS | void |
| setSupportAllGnss() | 启用所有卫星系统 | void |
### 差分信息
| 接口 | 说明 | 返回值 |
|------|------|--------|
| getAge() | 获取差分龄期 | double |
| getCorsRevDatSize() | 获取 CORS 接收数据大小 | int |
| getAccount() | 获取设备 CORS 配置 | void |
| setAccount(...) | 设置设备 CORS 账号 | void |
| setPhoneAccount(...) | 设置手机网络 CORS | void |
| injectRtcmData(byte[]) | 注入 RTCM 数据 | void |
### 设备信息
| 接口 | 说明 | 返回值 |
|------|------|--------|
| getUniqueSN() | 获取设备序列号 | String |
| getHardVer() | 获取硬件版本 | String |
| getSoftVer() | 获取软件版本 | String |
| getImei() | 获取 IMEI | String |
| getImsi() | 获取 IMSI | String |
| getIccid() | 获取 ICCID | String |
| getDsk() | 获取 DSK | String |
| getBattPower() | 获取电池电量 (%) | int |
| getBattVol() | 获取电池电压 (V) | double |
| getcsq() | 获取 4G 信号强度 (0-31) | int |
| gettemperature() | 获取设备温度 (℃) | double |
### 蓝牙信息
| 接口 | 说明 | 返回值 |
|------|------|--------|
| getRssi() | 获取蓝牙信号强度 (dB) | int |
| getDistance() | 获取估算距离 (米) | double |
| setBtRfLevel(int) | 设置蓝牙发射功率 | void |
### 其他功能
| 接口 | 说明 | 返回值 |
|------|------|--------|
| setPosFreq(int) | 设置定位频率 (1-10Hz) | boolean |
| getPosFreq() | 获取定位频率 | int |
| setQxSdkCoordSys(int) | 设置坐标系 (1:ITRF 2:WGS84 3:CGCS2000) | void |
| getQxSdkCoordSys() | 获取坐标系 | int |
| getTime() | 获取时间戳 (秒) | Long |
| getTime1ms() | 获取时间戳 (毫秒) | Long |
| getXZAng() | 获取角度 | double |
| reboot() | 重启设备 | void |
| otaUpgradeStart(byte[]) | 开始 OTA 升级 | void |
## 全局变量
可直接访问的静态变量:
### 定位数据
| 变量 | 说明 | 类型 |
|------|------|------|
| Latitude | 纬度 | double |
| Longitude | 经度 | double |
| Altitude | 海拔高 | double |
| AltitudeCorr | 高程异常值 | double |
| Elevation | 大地高 | double |
| FixType | 定位状态 | int |
| Speed | 速度 | double |
| Direction | 航向 | double |
### 精度数据
| 变量 | 说明 | 类型 |
|------|------|------|
| Pdop | 位置精度因子 | double |
| Hdop | 水平精度因子 | double |
| Vdop | 垂直精度因子 | double |
| Tdop | 时间精度因子 | double |
| hRMS | 水平精度 | double |
| vRMS | 垂直精度 | double |
### 卫星数据
| 变量 | 说明 | 类型 |
|------|------|------|
| nSatsInView | 可视卫星数 | int |
| nSatsInUse | 使用卫星数 | int |
| GnssSys | 卫星系统标志 | int |
| isSupportGps | 是否支持 GPS | boolean |
| isSupportBds | 是否支持北斗 | boolean |
| isSupportGal | 是否支持伽利略 | boolean |
| isSupportGlo | 是否支持格洛纳斯 | boolean |
| isSupportQzss | 是否支持 QZSS | boolean |
### 差分数据
| 变量 | 说明 | 类型 |
|------|------|------|
| CorsAge | 差分龄期 (秒) | double |
| CorsSta | CORS 状态 | int |
| CorsRevDatSize | CORS 接收数据大小 | int |
| CorsPhoneRevDatSize | 手机网络 CORS 接收数据大小 | int |
### 设备数据
| 变量 | 说明 | 类型 |
|------|------|------|
| UniqueSN | 设备序列号 | String |
| HardVer | 硬件版本 | String |
| SoftVer | 软件版本 | String |
| Imei | IMEI | String |
| Imsi | IMSI | String |
| Iccid | ICCID | String |
| Dsk | DSK | String |
| BattVol | 电池电压 | double |
| BattPower | 电池电量 (%) | int |
| csq | 4G 信号强度 (0-31) | int |
| temperature | 设备温度 (℃) | double |
### 时间数据
| 变量 | 说明 | 类型 |
|------|------|------|
| time | 时间戳 (秒) | long |
| time1ms | 时间戳 (毫秒) | long |
| ggatime1ms | GGA 时间戳 (毫秒) | long |
### 其他
| 变量 | 说明 | 类型 |
|------|------|------|
| XZAng | 角度 (度) | double |
| qxSdkCoordSys | 坐标系 (1:ITRF 2:WGS84 3:CGCS2000) | int |
| MostRecentGGA | 最新 GGA 数据 | String |
## 技术支持
如有问题,请提交 Issue。