我的flutter应用程序正在使用fluft_bluetooth_basic:^0.1.5和blue_thermal_printer:^1.1.1软件包连接到蓝牙打印机并打印收据,但我的问题是,我希望用户能够连接到蓝牙打印机,并将其保存在共享的首选项下,因此每次打开登录时,我的应用程序将尝试自动连接到蓝牙打印机,这样他们就不必每次都连接,而是保存了一个蓝牙设备,但当尝试将其保存到共享首选项时,我无法设置它,因为它不支持蓝牙设备的类型,如何在本地保存BluetoothDevive对象?有什么想法吗,请
您可以将该对象编码为字符串,然后保存它,无论何时您需要它,只需恢复该字符串并将其解码为原始类型这是一份完整的文件。
以下是解决方案。希望这能帮助到有同样问题的人。
final SharedPreferences prefs = await SharedPreferences.getInstance();
setDevice(BluetoothDevice device) {
prefs.setString("bluetooth", jsonEncode(device.toMap()));
}
BluetoothDevice getDevice() {
String device = prefs.getString("bluetooth");
if (device != null && device.length > 0) {
var map = jsonDecode(device);
BluetoothDevice bluetoothDevice = new BluetoothDevice.fromMap(map);
return bluetoothDevice;
} else {
return null;
}
}