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

Flutter在Android 12运行时缺少BLUETOOTH权限问题求助

蓝牙权限缺失问题:android.permission.BLUETOOTH

错误日志

E/BThermalPrinterPlugin( 9243): UID 10581 / PID 9243 lacks permission android.permission.BLUETOOTH
E/BThermalPrinterPlugin( 9243): java.lang.SecurityException: UID 10581 / PID 9243 lacks permission android.permission.BLUETOOTH
E/BThermalPrinterPlugin( 9243):     at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)

AndroidManifest.xml 配置

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.soerjdev.enakabe">
   <application
        android:label="Enakabe"
        android:icon="@mipmap/launcher_icon">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize"
            android:exported="true">
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <meta-data
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@drawable/launch_background"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30"/>
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
</manifest>

build.gradle 配置

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 33

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        applicationId "com.soerjdev.enakabe"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true
    }

    buildTypes {
        release {
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:multidex:2.0.1'
}

pubspec.yaml 依赖

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  flutter_typeahead: ^4.1.1
  shared_preferences: ^2.0.1
  go_router: ^5.1.5
  double_back_to_close_app: ^2.1.0
  provider: ^6.0.4
  image_picker: ^0.7.1
  http: ^0.13.5
  path_provider: ^2.0.11
  path: ^1.8.2
  flutter_spinkit: ^5.1.0
  flutter_switch: ^0.3.2
  intl: ^0.17.0
  bluetooth_print: ^4.0.1
  blue_thermal_printer: ^1.2.3
  esc_pos_utils_plus: ^2.0.1+6
  flutter_blue_plus: ^1.3.1
  qr_flutter: ^4.0.0
  image: ^3.2.2
  url_launcher: ^6.0.0
  scroll_snap_list: ^0.9.1
  permission_handler: ^10.2.0
  app_settings: ^4.1.8


dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_launcher_icons: "^0.11.0"

已经尝试过Stack Overflow上的多种解决方案,但仍无法解决该问题,恳请大家帮忙。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:20:18