iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Mobile Development

好好用的 flutter 套件系列 第 15

好好用的 flutter 套件 - Day 15 permission_handler

  • 分享至 

  • xImage
  •  

需求

permission_handler 只有支援三平台 ANDROID、IOS、WINDOWS,大家要注意一下!
雖然只有支援三平台,但為什麼要用呢? 
主要因為 ANDROID、IOS 手機,會要跟使用者要求權限,所以還滿重要的一定要介紹呀。

permission_handler - Readme

有設定和如何在android 和ios 上的使用方式
if (await Permission.contacts.request().isGranted) {
  // Either the permission was already granted before or the user just granted it.
}

// You can request multiple permissions at once.
Map<Permission, PermissionStatus> statuses = await [
  Permission.location,
  Permission.storage,
].request();
print(statuses[Permission.location]);

permission_handler - Install

直接在 pubspec.yaml 加上 permission_handler: ^11.0.0 ,然後pub get 
dependencies:
  permission_handler: ^11.0.0

https://ithelp.ithome.com.tw/upload/images/20230929/20121643TIJJj2e5y0.png

permission_handler - Example

在 /lib/main.dart 加入 程式
import 'package:permission_handler/permission_handler.dart';

用藍芽權限為例:

Future<void> _checkBlueInfo() async {
    Map<Permission, PermissionStatus> statuses = await [
      Permission.bluetooth,
      Permission.bluetoothConnect,
      Permission.bluetoothScan,
      Permission.bluetoothAdvertise
    ].request();
    print(statuses[Permission.bluetoothConnect]);
    print(statuses[Permission.bluetoothScan]);
    print(statuses[Permission.bluetoothAdvertise]);
  }

在android 的 AndroidMainfest.xml 加上藍芽權限

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

執行結果

https://ithelp.ithome.com.tw/upload/images/20230929/20121643T3gax8hCaC.png

心得

範例的藍芽權限可以依要要求的權限修改,就可以使用了,是不是很方便呢? 
特別用android 的藍芽權限,是因為在使用藍芽時,要求鄰近裝置權限,一定要同意,
不同意後,連藍芽耳機都不行使用,真的很奇怪,跳出的說明跟藍芽沒什麼關係,我只是要用耳機呀!

上一篇
好好用的 flutter 套件 - Day 14 device_info_plus
下一篇
好好用的 flutter 套件 - Day 16 connectivity_plus
系列文
好好用的 flutter 套件30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言