12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- part of flutter_bluetooth;
- class BluetoothDevice {
- final String name;
- final String address;
- final int deviceClass;
- BluetoothDevice({this.name, this.address, this.deviceClass});
- static BluetoothDevice fromJson(data) {
- String name = data['name'];
- String address = data['address'];
- int deviceClass = data['deviceClass'];
- return BluetoothDevice(name: name, address: address, deviceClass: deviceClass);
- }
- static Future<BluetoothDevice> fromAddress(String address) async {
- String name =
- await FlutterBluetooth.instance._channel.invokeMethod('getName', address);
- int deviceClass =
- await FlutterBluetooth.instance._channel.invokeMethod('getDeviceClass', address);
- return BluetoothDevice(
- address: address,
- name: name,
- deviceClass: deviceClass);
- }
- Future<bool> isBond() async {
- return FlutterBluetooth.instance._channel.invokeMethod('isBond', address);
- }
- Future<bool> createBond() async {
- return FlutterBluetooth.instance._channel.invokeMethod('createBond', address);
- }
- Future<BluetoothSocket> createSocket(String uuid) async {
- bool isSuccess = await FlutterBluetooth.instance._channel.invokeMethod('createSocket', {
- 'address': address,
- 'uuid': uuid
- });
-
- if(!isSuccess){
- throw ErrorDescription('创建Socket失败');
- }
- return BluetoothSocket._(address, uuid);
- }
- Future<List<String>> getUUIDs() async{
- var isBond = await this.isBond();
- if(isBond){
- List uuids = await FlutterBluetooth.instance._channel.invokeMethod('getUUIDs', address);
- return uuids.map((item)=>item as String).toList();
- }else{
- throw ErrorDescription("只有配对蓝牙后才可以获取UUID");
- }
- }
- bool operator ==(target){
- if(target is BluetoothDevice){
- return this.address == target.address;
- }else{
- return false;
- }
- }
- @override
- // TODO: implement hashCode
- int get hashCode => this.address.hashCode;
- }
|