From eae8e9c7761ebbfc63695af71de790d02ff94f7e Mon Sep 17 00:00:00 2001 From: Alexandros Schillings Date: Mon, 13 Jul 2015 16:36:17 +0100 Subject: [PATCH] Added Bluetooth Major Class resolver --- .../device/BluetoothLeDevice.java | 9 ++++++ .../resolvers/BluetoothClassResolver.java | 29 +++++++++++++++++++ .../activities/DeviceDetailsActivity.java | 2 ++ .../res/layout/list_item_view_device_info.xml | 10 +++++++ sample_app/src/main/res/values/strings.xml | 1 + 5 files changed, 51 insertions(+) diff --git a/library/src/main/java/uk/co/alt236/bluetoothlelib/device/BluetoothLeDevice.java b/library/src/main/java/uk/co/alt236/bluetoothlelib/device/BluetoothLeDevice.java index cea2829..aebed51 100644 --- a/library/src/main/java/uk/co/alt236/bluetoothlelib/device/BluetoothLeDevice.java +++ b/library/src/main/java/uk/co/alt236/bluetoothlelib/device/BluetoothLeDevice.java @@ -212,6 +212,15 @@ public class BluetoothLeDevice implements Parcelable { return BluetoothClassResolver.resolveDeviceClass(mDevice.getBluetoothClass().getDeviceClass()); } + /** + * Gets the bluetooth device major class name. + * + * @return the bluetooth device major class name + */ + public String getBluetoothDeviceMajorClassName() { + return BluetoothClassResolver.resolveMajorDeviceClass(mDevice.getBluetoothClass().getMajorDeviceClass()); + } + /** * Gets the device. * diff --git a/library/src/main/java/uk/co/alt236/bluetoothlelib/resolvers/BluetoothClassResolver.java b/library/src/main/java/uk/co/alt236/bluetoothlelib/resolvers/BluetoothClassResolver.java index 5a2f995..9697ee9 100644 --- a/library/src/main/java/uk/co/alt236/bluetoothlelib/resolvers/BluetoothClassResolver.java +++ b/library/src/main/java/uk/co/alt236/bluetoothlelib/resolvers/BluetoothClassResolver.java @@ -110,4 +110,33 @@ public class BluetoothClassResolver { return "Unknown, Unknown (class=" + btClass + ")"; } } + + public static String resolveMajorDeviceClass(final int majorBtClass) { + switch (majorBtClass) { + case BluetoothClass.Device.Major.AUDIO_VIDEO: + return "Audio/ Video"; + case BluetoothClass.Device.Major.COMPUTER: + return "Computer"; + case BluetoothClass.Device.Major.HEALTH: + return "Health"; + case BluetoothClass.Device.Major.IMAGING: + return "Imaging"; + case BluetoothClass.Device.Major.MISC: + return "Misc"; + case BluetoothClass.Device.Major.NETWORKING: + return "Networking"; + case BluetoothClass.Device.Major.PERIPHERAL: + return "Peripheral"; + case BluetoothClass.Device.Major.PHONE: + return "Phone"; + case BluetoothClass.Device.Major.TOY: + return "Toy"; + case BluetoothClass.Device.Major.UNCATEGORIZED: + return "Uncategorized"; + case BluetoothClass.Device.Major.WEARABLE: + return "Wearable"; + default: + return "Unknown (" +majorBtClass+ ")"; + } + } } diff --git a/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceDetailsActivity.java b/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceDetailsActivity.java index fbc9045..644b5f4 100644 --- a/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceDetailsActivity.java +++ b/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceDetailsActivity.java @@ -55,11 +55,13 @@ public class DeviceDetailsActivity extends AppCompatActivity { final TextView tvName = (TextView) lt.findViewById(R.id.deviceName); final TextView tvAddress = (TextView) lt.findViewById(R.id.deviceAddress); final TextView tvClass = (TextView) lt.findViewById(R.id.deviceClass); + final TextView tvMajorClass = (TextView) lt.findViewById(R.id.deviceMajorClass); final TextView tvBondingState = (TextView) lt.findViewById(R.id.deviceBondingState); tvName.setText(device.getName()); tvAddress.setText(device.getAddress()); tvClass.setText(device.getBluetoothDeviceClassName()); + tvMajorClass.setText(device.getBluetoothDeviceMajorClassName()); tvBondingState.setText(device.getBluetoothDeviceBondState()); adapter.addView(lt); diff --git a/sample_app/src/main/res/layout/list_item_view_device_info.xml b/sample_app/src/main/res/layout/list_item_view_device_info.xml index dc71280..459e35a 100644 --- a/sample_app/src/main/res/layout/list_item_view_device_info.xml +++ b/sample_app/src/main/res/layout/list_item_view_device_info.xml @@ -42,6 +42,16 @@ android:id="@+id/deviceClass" style="@style/GridLayoutDataTextView"/> + + + + Desc: Device address: Device Class: + Major Class: Device Name: Distance: First RSSI: