flutter怎么添加ios网络权限_使用Flutter控制蓝牙通讯
背景知識視頻教程
Dart和Flutter:完整的開發人員指南 - 國外課棧?viadean.comFlutter使用Firestore構建復雜的Android和ios應用 - 國外課棧?viadean.comFlutter的實際項目 - 國外課棧?viadean.com您想使用藍牙玩物聯網設備,但不能在其中放置任何軟件嗎? 在這里,我們將了解如何使用電話應用程序通過藍牙與IoT設備進行通信。 是使用Android還是iOS? 都可以! 我們將使用Flutter作為移動應用程序的開發框架。 我們將編寫一個nRF連接燈,以便在設備上進行掃描,連接,讀取和寫入操作。
添加依賴項
</>...
更改用于Android的minSdkVersion
Android {
defaultConfig {
minSdkVersion: 19
添加藍牙權限
我們需要添加使用藍牙和訪問位置的權限:
Android
在AndroidManifest.xml中添加:
</>...
iOS
在Info.plist中添加:
</>...
開始
現在是我們的main.dart:
import 'package:flutter/material.dart';
</>...
我們將可以通過使用_MyHomePageState小部件內的widget.flutterBlue屬性來訪問它。
掃描藍牙設備
現在開始掃描藍牙設備,并將其顯示在ListView中。
首先,我們在MyHomePage類中添加一個包含設備的列表:
</>...
并在_MyHomePage類中編寫一個方法,該方法將有助于在列表中填充該方法:
</>...
現在,通過在_MyHomePage的initState方法內開始掃描來填充它:
注意:開始掃描時,您只會列出尚未連接的設備。因此,我們還將通過訪問FlutterBlue實例的connectedDevices屬性將已連接的設備添加到列表中。
</>...
現在,我們的列表將填充FlutterBlue通過掃描找到的設備。
現在,以deviceList作為內容構建ListView:
</>...
將此listView分配為我們主要支架的主體:
</>...
現在我們應該有附近的支持藍牙的設備列表。接下來,我們將連接到其中一個,并顯示其具有的服務和特征。
連接到設備并顯示具有特征的服務
出于可讀性考慮,我們將不會創建新視圖來連接到設備,而是會修改MyHomePage的當前內容,以使其取決于我們是否已連接。 為此,我們首先要添加一個函數,該函數將返回正確的視圖以顯示。
因此,讓我們在_MyHomePageState中添加一個表示要連接的設備的狀態及其公開的服務列表:
</>...
函數:
</>...
_buildConnectDeviceView方法目前尚不做很多事情:
</>...
現在,我們的構建方法將返回此_buildView:
</>...
最后,我們可以在FlatButton的onPressed方法中添加一些邏輯,在該方法中我們將停止FlutterBlue的掃描,連接到該設備并將該設備設置為先前創建的狀態_connectedDevice并獲取該設備的服務并顯示列表。
</>...
更改_buildConnectDeviceView如下:
</>...
顯示特性
現在,我們有可供使用的服務列表。我們將顯示每個服務的特征,并根據我們是否可以讀取,寫入或通知此功能來添加按鈕。
我們新的_buildConnectDeviceView看起來像這樣:
</>...
然后添加一個計算按鈕的函數:
</>...
現在的結果:
讀取,寫入和接收來自特征的通知
最后一步是在讀取,寫入和通知按鈕上添加邏輯。
我們將首先添加一個Map以按特征存儲我們的值,以便能夠顯示它們。
在MyHomePage類中,添加以下內容:
</>...
然后在_buildConnectDeviceView方法中添加一個新行以顯示我們的值:
</>...
讀取
首先讓我們在讀取按鈕的onPressed方法中添加邏輯:
</>...
在這里,我們首先聽取特征變化并將其新值存儲在我們先前創建的Map中。然后它將更新我們的視圖并顯示更新的值。
寫入
為了將數據發送到設備,我們將在對話框內創建一個TextField字段,將控制器鏈接到該字段并發送其內容。
因此,讓我們向_MyHomePageState添加一個控制器:
</>...
并使用寫入按鈕的onPressed方法內部的邏輯創建我們的對話框:
</>...
因此,我們只需將傳遞給我們的輸入值調用特征的write函數,然后使用dart:convert將其轉換為字節數組
通知
通知只是在每次處理通知的特征值更新時執行的回調:
</>...
現在,每次此特征的值發生變化時,我們都會得到通知,這也將更新我們UI中的值。
現在,我們有了一個完整的應用程序,可以掃描藍牙設備,連接到它們,顯示它們的服務,讀取它們的值,更新它們并收到有關更改的通知。
完整源碼
使用Flutter控制藍牙通訊 - 國外課棧?viadean.com總結
以上是生活随笔為你收集整理的flutter怎么添加ios网络权限_使用Flutter控制蓝牙通讯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery中的ajax、jquery中
- 下一篇: 10无法勾选隐藏的项目_Excel超好用