【问题标题】:Problem with granting permission for bluetooth in flutter and flutter-blue在flutter和flutter-blue中授予蓝牙权限的问题
【发布时间】:2021-07-19 23:46:44
【问题描述】:

我使用flutter-blue 包开发了一个简单的应用程序。该应用程序在调试模式下工作正常。现在我想发布一个发布版 APK 以将其安装到其他设备上。

这是我的 Android 清单文件:

<uses-feature android:name="android.hardware.bluetooth" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

APK 已成功构建,但安装的应用程序无法运行。权限似乎存在一些问题。

我尝试了以下各种 git 问题的解决方法:

  1. 在构建时使用 --no-shrink 参数。生成更大的 apk 文件,但没有任何变化。
  2. 使用permission-handler 包并在主函数中添加:

代码:

checkPerm() async {    
var status = await Permission.bluetooth.status;
if (status.isDenied) {
 
  await Permission.bluetooth.request();
}

if (await Permission.bluetooth.status.isPermanentlyDenied) {
  openAppSettings();
}

}

还有:

void main() {

  checkPerm();
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
      .then((_) {
    runApp(BleApp());
  });
}

以上解决方案都不适合我。颤动的蓝色错误是:错误开始扫描

apk-debug 构建工作正常并授予权限。

一般信息:

minSdkVersion 19
targetSdkVersion 28
Flutter version 2.0.4
Dart version 2.12.2
flutter_blue: ^0.8.0
provider: ^5.0.0
permission_handler: ^7.0.0

在 Android 5.1 和 10 版本上测试。

有什么想法吗?

【问题讨论】:

标签: flutter


【解决方案1】:

像这样添加到 build.gradle

buildTypes {
        release {
            signingConfig signingConfigs.debug
            shrinkResources false
            minifyEnabled false
        }
    }

然后从设备中删除旧应用程序,然后删除 flutter cleanflutter run --release。 它对我有用

【讨论】:

    猜你喜欢
    • 2022-10-06
    • 2022-09-27
    • 2020-11-08
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    相关资源
    最近更新 更多