FASTBLE使用以及Ibeacan广播数据读取

1 FastBle使用

官方库网址GitHub - Jasonchenlijian/FastBle: Android Bluetooth Low Energy (BLE) Fast Development Framework. It uses simple ways to filter, scan, connect, read ,write, notify, readRssi, setMTU, and multiConnection.

1.1 添加依赖库

implementation 'com.clj.fastble:FastBleLib:2.3.4'

1.2 申请权限

1.2.1 首先在AndroidManifest.xml文件中添加权限申请




1.2.2 在oncreate函数中动态获取权限


String[] permissions={
        Manifest.permission.BLUETOOTH,
        Manifest.permission.BLUETOOTH_ADMIN,
        Manifest.permission.ACCESS_COARSE_LOCATION,
        Manifest.permission.ACCESS_FINE_LOCATION,
};

//申请权限
for(String str:permissions)
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    {
        if(this.checkSelfPermission(str)!= PackageManager.PERMISSION_GRANTED)
        {
            this.requestPermissions(permissions,101);
        }
    }
}

1.3 BleManager初始化

BleManager.getInstance().init(getApplication());
BleManager.getInstance()
        .enableLog(true)
        .setReConnectCount(1,5000)
        .setConnectOverTime(5000)
        .setOperateTimeout(5000);

1.4 点击按键开始扫描

btn1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        checkBluetooth();
        mac=edit.getText().toString();
        mac="10:08:2C:21:C9:C3";
        initScanner();
        startScan();
        t2.setText("open scan!");
    }
});

1.4.1 蓝牙扫描初始化函数

//初始化扫描设置
protected void initScanner()
{
    BleScanRuleConfig scanRuleConfig=new BleScanRuleConfig.Builder()
            .setScanTimeOut(-1)
            .build();
    BleManager.getInstance().initScanRule(scanRuleConfig);
}

1.4.2 启动扫描 并在里面新建回调函数BleScanCallBack()

FASTBLE使用以及Ibeacan广播数据读取_第1张图片

 1.4.3 重写回调函数onScanning方法,扫到一个设备就会调用此方法

FASTBLE使用以及Ibeacan广播数据读取_第2张图片

 

 1.4.4 利用BleDevice.getScanRecord获取广播数据

 record: 02 01 06 03 02 f0 ff 17 ff 48 43 2d 30 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 12 06 00 0c 00 02 0a 04 06 09 48 43 2d 30 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

你可能感兴趣的:(Android,android)