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: