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

Android 13下ESCPOS-thermal_printer库蓝牙连接异常问题求解

解决Android 13下ESCPOS-thermal_printer蓝牙连接异常的方案

1. 适配Android 13蓝牙权限

Android 13(API 33)对蓝牙权限体系做了调整,新增BLUETOOTH_CONNECT和BLUETOOTH_SCAN权限,替代了旧版本的BLUETOOTH、BLUETOOTH_ADMIN权限。需在AndroidManifest.xml中添加权限声明,同时保留低版本兼容配置:

<!-- Android 13及以上所需权限 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />

<!-- 低版本兼容权限 -->
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="32" />

2. 动态申请权限

Android 13要求BLUETOOTH_CONNECT和BLUETOOTH_SCAN必须动态申请,不能仅依赖清单声明。在连接打印机前,需先判断权限状态并发起申请:

private static final int REQUEST_BLUETOOTH_PERM = 1001;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    String[] requiredPerms = {
        Manifest.permission.BLUETOOTH_CONNECT,
        Manifest.permission.BLUETOOTH_SCAN
    };
    boolean hasConnectPerm = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED;
    boolean hasScanPerm = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED;
    
    if (!hasConnectPerm || !hasScanPerm) {
        ActivityCompat.requestPermissions(this, requiredPerms, REQUEST_BLUETOOTH_PERM);
    }
}

注:BLUETOOTH_SCAN权限添加neverForLocation标记后,无需申请位置权限,避免不必要的权限弹窗。

3. 确认设备配对状态

Android 13限制了未授权应用对已配对蓝牙设备的访问,即使设备已配对,没有BLUETOOTH_CONNECT权限也无法建立连接。需确保用户已完成打印机配对,且权限申请通过后再执行连接操作。

4. 升级库版本

检查ESCPOS-thermal_printer库是否有适配Android 13的更新版本,旧版本可能未兼容新权限体系,建议升级到最新稳定版。

5. 排查连接流程

在连接代码前后添加日志,确认蓝牙设备地址、配对状态、权限授予情况。若问题仍存在,可尝试用Android原生蓝牙API直接测试连接,排查是库的适配问题还是系统权限问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:07:08