FeasyWiFi SDK For Android

[English]

SDK资源包下载

[下载FeasyWiFi_SDK_2.0.3]

SDK接入文档

对应SDK版本

编写日期

编写人员

V2.0.3

2024年4月13日

常纪刚

接入方式

解压SDK,将libs目录下所有文件拖到工程里。

权限申请

使用SDK必须动态获取定位权限,打开手机定位开关与手机蓝牙开关才能正常使用(Android 6.0 以上如果没有动态获取定位权限并打开手机定位开关将扫描不到BLE设备,Android 的限制)

AndroidManifest.xml 中需加入以下权限

// 蓝牙相关权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

// 定位的权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

初始化

// 初始化 只需要调用一次。建议在Application中进行初始化
// 如其他地方需要 FscBleCentralApi,直接调用FscBleCentralApiImp.getInstance()的无参方法即可
FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance(context)
mFscBleCentralApi.initialize()

搜索

介绍

搜索 BLE 设备

方法

/**
* 开始扫描BLE设备
*
* @param time 扫描持续时间
*/
public void startScan(Long time);

搜索例子

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();

mFscBleCentralApi.setCallbacks(new FscBleCentralCallbacksImp(){
  void blePeripheralFound(BluetoothDeviceWrapper device, int rssi, byte[] record){
      // 扫描到的设备
  }
});
// 设置扫描时间
mFscBleCentralApi.startScan(30000);

停止搜索

mFscBeaconApi.stopScan();

连接

介绍

连接设备

方法

/**
* 根据BLE设备的地址码连接设备
*/
public boolean connect(String address);

连接例子

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();

mFscBleCentralApi.setCallbacks(new FscBleCentralCallbacksImp(){

  void blePeripheralConnected(BluetoothGatt gatt, BluetoothDevice device){
      // 连接成功
  }

});

// 连接设备
mFscBleCentralApi.connect(device.getAddress);

断开连接

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();
mFscBleCentralApi.setCallbacks(new FscBleCentralCallbacksImp(){
   void blePeripheralDisconnected(BluetoothGatt gatt, BluetoothDevice device, boolean isPinError){
        // 设备断开连接后调用 isPinError 是否是pin码错误导致的断开连接,暂时忽略这个参数
   }

});
// 连接设备
mFscBleCentralApi.disconnect();

配网

蓝牙配网

1.介绍

蓝牙配网

2.方法

/**
* 蓝牙配网
* @param ssid          ssid
* @param password      wifi 密码
* @param fscNetworkCentralCallbacks    配网结果回调
*/
public void setNetwork(String ssid, String password, FscNetworkCentralCallbacks fscNetworkCentralCallbacks);

3.蓝牙配网例子

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();

mFscBleCentralApi.setNetwork(ssid, password, new FscNetworkCentralCallbacks(){
   void success(String ip){
       // 蓝牙配网成功,返回模块IP地址
   }

   void failure(){
       // 蓝牙配网失败
   }
});

简易配网

1.介绍

BW246 简易配网(2.4G),手机需要先连接需要配置的wifi。

2.方法

 /**
 * 开始简易配网
 * @param i {@link Commont#BW_246}  配置的模块类型
 * @param result    wifi状态信息
 * @param password  wifi密码
 */
void startConfig(int i, StateResult result, String password)

3.配网例子

ConfigNetworkApi mConfigNetworkApi = ConfigNetworkApiImp.getInstance(this);

mConfigNetworkApi.setCallback(new ConfigNetworkCallback(){
   void success(String ip){
       // 配置成功,返回配置成功的ip地址
   }

   void failure(int status){
       // 配置失败,返回失败状态
   }
});

StateResult result = mConfigNetworkApi.getStateResult();

mConfigNetworkApi.startConfig(Commont.BW_246, result, password);

4.停止配网

mConfigNetworkApi.stopConfig();

恢复出厂设置

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();

mFscBleCentralApi.reset();

升级

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();

//  name 本地IP地址或固件名
mFscBleCentralApi.startOTA(name, new FscOtaCentralCallbacks(){
  void success(){
      // 升级成功
  }

  void failure(){
      // 升级失败
  }

  void progress(String progress){
      // 升级进度
  }

  void networkIsNotConfigured(){
      // 还未配网。无法进行升级
  }

  void startConfig(){
      // 开始配置
  }
})

查询版本

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();
mFscBleCentralApi.setCallback(new FscBleCentralCallbacksImp(){
  void versionInformation(String version){
      // 查询到的版本信息
  }
});
mFscBleCentralApi.getVersion();

查询IP

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();
mFscBleCentralApi.setCallback(new FscBleCentralCallbacksImp(){
  void ipInformation(String ip){
      // 查询到ip信息
  }
});
mFscBleCentralApi.getIP();

配置静态ip

FscBleCentralApi mFscBleCentralApi = FscBleCentralApiImp.getInstance();
mFscBleCentralApi.setDhcp(b)
mFscBleCentralApi.setIp(ip)
mFscBleCentralApi.setGw(gw)
mFscBleCentralApi.setMask(mask)

附件

下载PDF版本

下载PDF版本