// turn on bluetooth and location // allow app location in settings // change android/app/build.gradle // minSdkVersion 19 // // add to pubspec.yaml // flutter_ble_lib: // // troubleshooting: turn on/off bluetooth on phone/tablet // use nordic nrfconnect to find out // 1) device name // 2) service // 3) characteristic import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:flutter_ble_lib/flutter_ble_lib.dart'; void main() {runApp(MyApp());} class MyApp extends StatelessWidget { final BleManager ble = BleManager(); Peripheral peri; final List writeValue = [0x41,0x42,0x43,0x30,0x31,0x32]; // ABC123 @override Widget build(BuildContext context) { return MaterialApp(title: 'Flutter Demo', home: Home());}} class Home extends StatefulWidget { Home({Key key, this.title}) : super(key: key); final String title; @override _HomeState createState() => _HomeState();} class _HomeState extends State { BleManager ble; Peripheral peri; List writeValue = [0x41,0x42,0x43,0x30,0x31,0x32]; // ABC123 connectToBle() { ble.startPeripheralScan( ).listen((scanResult) async { if (scanResult.peripheral.name == "Adafruit Bluefruit LE") { // device name peri = scanResult.peripheral; ble.stopPeripheralScan(); bool c = await peri.isConnected(); if (!c) { await peri.connect(); await peri.isConnected();} //test if connected otherwise getting error connected already await peri.discoverAllServicesAndCharacteristics(); peri.writeCharacteristic( "6e400001-b5a3-f393-e0a9-e50e24dcca9e", // service "6e400002-b5a3-f393-e0a9-e50e24dcca9e", // tx characteristic Uint8List.fromList(writeValue), false);}});} @override void initState() { super.initState(); ble = BleManager(); ble.createClient(); connectToBle();} @override Widget build(BuildContext context) {return Scaffold(body: Center(child:Text('hello')),);}}