You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取Android版本时蓝牙设备全部断开,求原因与替代获取方法

问题分析与解决建议

可能的原因

  • 权限/系统API冲突:获取Android版本的操作(不管是Flutter的Platform类还是device_info_plus包)底层调用的系统接口,在部分定制Android系统上会触发系统服务临时重置,蓝牙服务受此影响导致断开。
  • 系统资源抢占:读取系统版本信息时短暂占用核心系统资源,蓝牙进程的资源被挤占,进而引发连接中断。
  • 定制ROM兼容性bug:部分厂商的定制系统存在逻辑漏洞,调用特定系统属性读取接口时会意外触发蓝牙服务重启。

替代的Android版本获取方法

方法1:直接读取系统属性文件(需注意权限)

通过读取/system/build.prop文件中的版本字段获取,Flutter代码示例:

import 'dart:io';

Future<String> getAndroidReleaseVersion() async {
  try {
    final buildProp = File('/system/build.prop');
    if (await buildProp.exists()) {
      final content = await buildProp.readAsString();
      final versionMatch = RegExp(r'ro.build.version.release=(.*)').firstMatch(content);
      return versionMatch?.group(1) ?? '未知版本';
    }
  } catch (e) {
    print('读取版本出错:$e');
  }
  return '未知版本';
}

注意:Android 10及以上版本可能因文件权限限制无法直接读取,需适配。

方法2:通过MethodChannel调用Android原生API

直接在Android原生层获取版本号,再通过MethodChannel传给Flutter,避免Flutter层API触发问题:

Android原生代码(Kotlin)

class MainActivity : FlutterActivity() {
    private val VERSION_CHANNEL = "your.app.package/version"

    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        MethodChannel(flutterEngine.dartExecutor.binaryMessenger, VERSION_CHANNEL).setMethodCallHandler { call, result ->
            if (call.method == "getAndroidVersion") {
                result.success(android.os.Build.VERSION.RELEASE)
            } else {
                result.notImplemented()
            }
        }
    }
}

Flutter层调用代码

import 'package:flutter/services.dart';

Future<String> getAndroidNativeVersion() async {
  const versionChannel = MethodChannel('your.app.package/version');
  try {
    return await versionChannel.invokeMethod('getAndroidVersion');
  } on PlatformException catch (e) {
    return '获取失败:${e.message}';
  }
}

额外建议

如果上述方法仍有问题,可以尝试:

  • 在应用启动初期获取版本号并缓存,避免在蓝牙连接状态下调用相关接口;
  • 延迟获取版本号,比如在蓝牙连接成功后等待1-2秒再执行读取操作。

内容的提问来源于stack exchange,提问作者Pandruz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 12:05:13