# BeiDouProbe
**Repository Path**: wangjishuai/BeiDouProbe
## Basic Information
- **Project Name**: BeiDouProbe
- **Description**: 北斗探针SDK
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2022-08-15
- **Last Updated**: 2022-08-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# BeiDouProbe
北斗探针SDK说明
##### 方式一: Gradle集成SDK
###### 1.1在Project的build.gradle文件中配置repositories,添加maven仓库地址(新版本Android studio需要在settings.gradle里面配置)
```
repositories {
...
maven { url "https://jitpack.io" }
}
```
###### 在主工程的build.gradle文件配置dependencies
[](https://jitpack.io/#woncan/BeidouProbe)
```
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.github.woncan:BeiDouProbe:latest.release' //其中latest.release指代最新SDK版本号
}
```
##### 方式二:通过拷贝添加
###### 1.添加 jar 文件:
将下载的 SDK 的 jar包复制到工程(此处截图以官方示例Demo为例子)的 libs 目录下,如果有老版本 jar 包在其中,请删除
###### 2.添加 so 库:
使用默认配置,不需要修改build.gradle。在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录即可。
使用自定义配置,将下载文件的 armeabi 文件夹复制到 libs 目录,如果有这个目录,请将下载的 so 库复制到这个目录,然后打开build.gradle,找到 sourceSets 标签,在里面增加一项配置
```
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
```
[点击下载文件](https://github.com/woncan/BeidouProbe/releases)
##### 添加混淆配置
```
-keep public class com.woncan.device.**{*;}
-keep class com.cmcc.sy.hap.** { *;}
-keep class com.qxwz.sdk.** { *;}
```
### 使用
##### 使用拷贝方式添加的需要配置AndroidManifest.xml
```
```
##### 搜索设备
```
//搜索设备
List serialDeviceList = DeviceManager.getSerialDeviceList(MainActivity.this);
UsbSerialDriver usbSerialDriver = serialDeviceList.get(0);
//判断权限
if (((UsbManager) getSystemService(Context.USB_SERVICE)).hasPermission(usbSerialDriver.getDevice())) {
connectDevice(usbSerialDriver);
} else {
DeviceManager.requestPermission(MainActivity.this, usbSerialDriver, isGranted -> {
if (isGranted) {
connectDevice(usbSerialDriver);
}
});
}
//注册设备连接监听
DeviceManager.registerDeviceAttachListener(MainActivity.this, new OnDeviceAttachListener() {
@Override
public void onDeviceAttach(UsbSerialDriver usbSerialDriver) {
//设备连接手机时回调
//需要判断权限
connectDevice(usbSerialDriver);
}
});
```
##### 连接设备
```
private void connectDevice(UsbSerialDriver driver){
Device device = DeviceManager.connectDevice(getApplicationContext(), driver);
//监听定位信息
device.setLocationListener(new LocationListener() {
@Override
public void onError(int errCode, String msg) {
//错误信息 修改部分
Log.i("TAG", "errCode: "+errCode+" msg:" + msg);
}
@Override
public void onLocationChanged(WLocation location) {
//位置信息
}
});
//监听卫星数据
device.setSatelliteListener(new SatelliteListener() {
@Override
public void onSatelliteListener(Satellite[] satellites) {
//卫星信息
}
});
//NMEA数据
device.setNMEAListener(new NMEAListener() {
@Override
public void onNMEAReceiver(String s) {
//NMEA回调
}
});
}
```
##### 设备配置
```
Device device = DeviceManager.getInstance().getDevice();
if (device!=null){
//获取设备信息
DeviceInfo deviceInfo = device.getDeviceInfo();
//修改输出频率
device.set5Hz();
//device.set1Hz();
//配置差分账号
device.setNtripAccount(ip,port, account, password, mountPoint);
}
```
##### 断开连接
```
DeviceManager.disconnect();
```
##### 日志
```
LogUtil.setIsDebug(BuildConfig.DEBUG);
```
##### onError状态
[errCode](https://gitee.com/woncan/BeiDouProbe/blob/master/readme/errCode.md)
##### WLocation
| 方法名 | 说明| 备注|
| :--| :-- | :-- |
| getFixStatus| 获取定位状态 |0=无法定位;1=单点定位;5=浮点定位;4=固定定位|
| getDiffAge| 差分延时 |单位:秒|
|getLatitude| 纬度 |单位:度|
| getLongitude|经度 |单位:度|
| getAltitude|海拔高 |单位:米|
| getAltitudeCorr|高程异常值 |大地高=海拔高+高程异常值|
| getnSatsInView| 卫星数 |
| getnSatsInUse| 参与解算的卫星数 |
| getTime| 时间戳 |
| getSpeed| 速度 |单位:米/秒|
| getBearing| 速度方向 |
| getAccuracy| 定位水平精度|单位:米|
| getmVerticalAccuracy| 定位垂直精度|
| gethDOP| hdop|
| getvDOP| vdop|
| getpDOP| pdop|