|
|
@ -285,7 +285,7 @@ object BleService { |
|
|
* @param timeout 扫描超时时间(毫秒) |
|
|
* @param timeout 扫描超时时间(毫秒) |
|
|
* @return 是否成功开始扫描 |
|
|
* @return 是否成功开始扫描 |
|
|
*/ |
|
|
*/ |
|
|
fun startScan(deviceName: String, timeout: Long = 15000): Boolean { |
|
|
fun startScan(uuids: List<String>, timeout: Long = 15000): Boolean { |
|
|
// Log.i(TAG, "liwei---------startScan 1 $deviceName") |
|
|
// Log.i(TAG, "liwei---------startScan 1 $deviceName") |
|
|
if (!isInitialized) { |
|
|
if (!isInitialized) { |
|
|
Log.e(TAG, "BLE服务未初始化") |
|
|
Log.e(TAG, "BLE服务未初始化") |
|
|
@ -318,12 +318,16 @@ object BleService { |
|
|
// .setCallbackType(ScanSettings.CALLBACK_TYPE_FIRST_MATCH) // 使用ALL_MATCHES获取所有结果 |
|
|
// .setCallbackType(ScanSettings.CALLBACK_TYPE_FIRST_MATCH) // 使用ALL_MATCHES获取所有结果 |
|
|
// .setReportDelay(0) // 立即报告结果 |
|
|
// .setReportDelay(0) // 立即报告结果 |
|
|
// .build() |
|
|
// .build() |
|
|
val filter = ScanFilter.Builder() |
|
|
// val filter = ScanFilter.Builder() |
|
|
// 建议用 Service UUID 或 Device Name 替代 Manufacturer Data |
|
|
// // 建议用 Service UUID 或 Device Name 替代 Manufacturer Data |
|
|
// .setServiceUuid(ParcelUuid(BleConst.PRIMARY_SERVICE_UUID)) |
|
|
// // .setServiceUuid(ParcelUuid(BleConst.PRIMARY_SERVICE_UUID)) |
|
|
// .setDeviceName(deviceName) // 更通用、更安全 |
|
|
//// .setDeviceName(deviceName) // 更通用、更安全 |
|
|
.build() |
|
|
// .build() |
|
|
|
|
|
val filters = uuids.map { uuidStr -> |
|
|
|
|
|
ScanFilter.Builder() |
|
|
|
|
|
.setServiceUuid(ParcelUuid(UUID.fromString(uuidStr))) |
|
|
|
|
|
.build() |
|
|
|
|
|
} |
|
|
val settings = ScanSettings.Builder() |
|
|
val settings = ScanSettings.Builder() |
|
|
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) |
|
|
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) |
|
|
.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) // 推荐:不会触发权限问题 |
|
|
.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) // 推荐:不会触发权限问题 |
|
|
@ -331,7 +335,7 @@ object BleService { |
|
|
.build() |
|
|
.build() |
|
|
// Log.i(TAG, "liwei---------startScan 7") |
|
|
// Log.i(TAG, "liwei---------startScan 7") |
|
|
try { |
|
|
try { |
|
|
scanner.startScan(listOf(filter), settings, scanCallback) |
|
|
scanner.startScan(filters, settings, scanCallback) |
|
|
isScanning = true |
|
|
isScanning = true |
|
|
// Log.i(TAG, "liwei---------startScan 8") |
|
|
// Log.i(TAG, "liwei---------startScan 8") |
|
|
// 设置扫描超时 |
|
|
// 设置扫描超时 |
|
|
|