Browse Source

Merge branch 'new_dev' of https://github.com/deepcloud2048/deep_voice into 唤醒优化

newdev_shunjiawei
fdp 1 year ago
parent
commit
28d86de88d
  1. 9
      lib/data/services/ble_manager.dart
  2. 14
      lib/modules/pairing/controllers/pairing_controller.dart
  3. 7
      local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleService.kt
  4. 6
      local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleServicePlugin.kt
  5. 10
      local_plugins/ble_service/lib/ble_service.dart
  6. 2
      local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicManager.kt

9
lib/data/services/ble_manager.dart

@ -1001,6 +1001,15 @@ class BleManager extends GetxService {
} }
} }
/// 启动设备关联
Future<void> connect() async {
try {
await _bleService.connect();
} catch (e) {
Logger.error('连接设备失败: ${e.toString()}');
}
}
/// 注册后台扫描 /// 注册后台扫描
Future<bool> registerBackgroundScan({String? macAddress}) async { Future<bool> registerBackgroundScan({String? macAddress}) async {
try { try {

14
lib/modules/pairing/controllers/pairing_controller.dart

@ -708,12 +708,13 @@ class PairingController extends GetxController with WidgetsBindingObserver {
// 注册后台扫描以开始BLE配对 // 注册后台扫描以开始BLE配对
if (_verifiedDeviceAddress != null) { if (_verifiedDeviceAddress != null) {
final success = await _bleManager.registerBackgroundScan( await _bleManager.connect();
macAddress: _verifiedDeviceAddress); // final success = await _bleManager.registerBackgroundScan(
if (!success && _currentState.value == PairingState.waitingBle) { // macAddress: _verifiedDeviceAddress);
_setError( // if (!success && _currentState.value == PairingState.waitingBle) {
ErrorType.bleTimeout, 'blePairingStartupFailed'.tr); //BLE配对启动失败 // _setError(
} // ErrorType.bleTimeout, 'blePairingStartupFailed'.tr); //BLE配对启动失败
// }
} }
} catch (e) { } catch (e) {
Logger.e(_tag, 'BLE连接失败: $e'); Logger.e(_tag, 'BLE连接失败: $e');
@ -1032,6 +1033,7 @@ class PairingController extends GetxController with WidgetsBindingObserver {
try { try {
Logger.i(_tag, '启动AgentService服务'); Logger.i(_tag, '启动AgentService服务');
await _bleManager.startAgentService(); await _bleManager.startAgentService();
_bleManager.registerBackgroundScan(macAddress: _verifiedDeviceAddress);
} catch (e) { } catch (e) {
Logger.e(_tag, '启动AgentService失败: $e'); Logger.e(_tag, '启动AgentService失败: $e');
} }

7
local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleService.kt

@ -302,7 +302,7 @@ object BleService {
// Log.i(TAG, "liwei---------startScan 5") // Log.i(TAG, "liwei---------startScan 5")
val filter = ScanFilter.Builder() val filter = ScanFilter.Builder()
// .setServiceUuid(ParcelUuid(BleConst.PRIMARY_SERVICE_UUID)) // .setServiceUuid(ParcelUuid(BleConst.PRIMARY_SERVICE_UUID))
// .setManufacturerData(0xEFAB, byteArrayOf(0xA0.toByte(), 0x01)) // .setServiceUuid(ParcelUuid(java.util.UUID.fromString("00000201-0000-1000-8000-00805f9b34fb")))
.build() .build()
// val filters = uuids.mapNotNull { uuidStr -> // val filters = uuids.mapNotNull { uuidStr ->
// try { // try {
@ -327,7 +327,7 @@ object BleService {
// } // }
// } // }
val settings = ScanSettings.Builder() val settings = ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) .setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)
.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) // 推荐:不会触发权限问题 .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) // 推荐:不会触发权限问题
.setReportDelay(0) .setReportDelay(0)
.build() .build()
@ -621,7 +621,7 @@ object BleService {
when { when {
status == BluetoothGatt.GATT_SUCCESS && newState == BluetoothProfile.STATE_CONNECTED -> { status == BluetoothGatt.GATT_SUCCESS && newState == BluetoothProfile.STATE_CONNECTED -> {
updateConnectionState(BleConst.STATE_CONNECTED) updateConnectionState(BleConst.STATE_CONNECTED)
Log.d(TAG, "成功连接Ble蓝牙设备:${g.device.name}")
// 设置PHY值为2M以提高传输速度 // 设置PHY值为2M以提高传输速度
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
try { try {
@ -1425,7 +1425,6 @@ startBytesStatistics()
Log.e(TAG, "音频发送线程异常: ${e.message}", e) Log.e(TAG, "音频发送线程异常: ${e.message}", e)
} }
} }
Log.i(TAG, "音频发送线程已停止") Log.i(TAG, "音频发送线程已停止")
}.apply { }.apply {
name = "AudioSendThread" name = "AudioSendThread"

6
local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleServicePlugin.kt

@ -189,7 +189,7 @@ class BleServicePlugin : FlutterPlugin, MethodCallHandler, ActivityAware,
val success = BleService.getDeviceVersion() val success = BleService.getDeviceVersion()
result.success(success) result.success(success)
} }
"getProductId" -> { "getProductId" -> {
val success = BleService.getProductId() val success = BleService.getProductId()
result.success(success) result.success(success)
} }
@ -322,6 +322,10 @@ class BleServicePlugin : FlutterPlugin, MethodCallHandler, ActivityAware,
Log.d(TAG, "getDeviceList $infos") Log.d(TAG, "getDeviceList $infos")
result.success(infos) result.success(infos)
} }
"connect" -> {
BleService.connect();
result.success(null)
}
"disconnect" -> { "disconnect" -> {
BleService.disconnect(); BleService.disconnect();
result.success(null) result.success(null)

10
local_plugins/ble_service/lib/ble_service.dart

@ -295,6 +295,16 @@ class BleService {
} }
} }
/// 停止TTS播放
Future<void> connect() async {
try {
await _methodChannel.invokeMethod<String>('connect');
} catch (e) {
print('连接设备失败: $e');
return;
}
}
/// 断开连接 /// 断开连接
Future<void> disconnect() async { Future<void> disconnect() async {
try { try {

2
local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicManager.kt

@ -706,8 +706,6 @@ class QQMusicManager(private val context: Context) {
} }
} }
/** /**
* 获取当前平台对应的QQ音乐包名 * 获取当前平台对应的QQ音乐包名
*/ */

Loading…
Cancel
Save