#flutter #bluetooth #flutter-dependencies
#flutter #bluetooth #flutter-зависимости
Вопрос:
Я пытался подключить flutter с помощью Bluetooth thermal_printer, используя пакет esc_pos_printer: ^ 2.1.2.
D / BluetoothBasicPlugin(18555): начать сканирование D / BluetoothAdapter(18555): СОСТОЯНИЕ НА D / BluetoothLeScanner(18555): onClientRegistered() — status = 0 clientIf = 6 D / BluetoothAdapter(18555): СОСТОЯНИЕ НА D / BluetoothBasicPlugin(18555): начать сканирование scan D / Адаптер Bluetooth (18555): СОСТОЯНИЕ НА D/BluetoothLeScanner(18555): onClientRegistered() — status= 0 clientIf= 6 D/BluetoothAdapter(18555): STATE_ON D / BluetoothBasicPlugin(18555): начать сканирование D / BluetoothAdapter(18555): STATE_ON D / BluetoothLeScanner(18555): onClientRegistered() — статус=0 clientIf=6 D/BluetoothAdapter(18555): STATE_ON
повторите эти строки при сканировании моего кода, приведенного ниже
import 'package:flutter/material.dart';
import 'package:esc_pos_printer/esc_pos_printer.dart';
class Test extends StatefulWidget {
@override
_TestState createState() => _TestState();
}
class _TestState extends State<Test> {
PrinterBluetoothManager printerManager = PrinterBluetoothManager();
List<PrinterBluetooth> _devices = [];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Printer Demo'),
),
body: ListView.builder(
itemBuilder: (context,position)=>ListTile(
onTap: (){
//code to print with this device
printerManager.selectPrinter(_devices[position]);
Ticket ticket=Ticket(PaperSize.mm58);
ticket.text('Demo text');
ticket.feed(1);
ticket.cut();
printerManager.printTicket(ticket).then((result) {
Scaffold.of(context).showSnackBar(SnackBar(content: Text(result.msg)));
}).catchError((error){
Scaffold.of(context).showSnackBar(SnackBar(content: Text(error.toString())));
});
},
title: Text(_devices[position].name),
subtitle: Text(_devices[position].address),
),
itemCount: _devices.length,
),
floatingActionButton: FloatingActionButton(onPressed: (){
//Code to search for devices
printerManager.startScan(Duration(seconds: 4));
printerManager.scanResults.listen((scannedDevices) {
setState(() {
_devices=scannedDevices;
});
});
},child: Icon(Icons.search),),
);
}
}
Комментарии:
1. Является ли ваш thermal_printer классическим Bluetooth или Bluetooth-принтером с низким энергопотреблением (BLE)? Вы используете библиотеку BLE, возможно, вам нужно использовать ее для Bluetooth Classic
2. Это сработало, когда я сменил принтер. Но теперь он печатает только один раз. когда я повторяю печать, она не работает. Затем мне нужно повторно подключить принтер и перезапустить весь процесс. Есть ли какое-либо решение?
3. Вы используете тот же код?