NordicSemiconductor / IOS-nRF-Connect

Info page
https://nordicsemiconductor.github.io/IOS-nRF-Connect/
136 stars 32 forks source link

BLE - Device information menu #133

Closed mpiffari closed 6 months ago

mpiffari commented 1 year ago

Hi folks, I'm here to ask information about these two menu asreas:

In particular I'm interested about info of BLE: which APIs are used both for Android and iOS in order to retrieve BLE information?

Android 1689926291288

iOS IMG_55B04FFDFDC2-1

dinesharjani commented 1 year ago

Hi @mpiffari ,

On iOS, there's very limited information of the BLE hardware & capabilities. At least when using Public APIs. If you know of any way to gather more information, I'd be very happy to learn about them. We wanted to expand this a lot more, and on the Mac (we haven't released this yet, but we're working on it as much as we can) we were able to add some more information. Presumably we could add even more, but there's a limit to how much time we can dedicate to one thing ;)

Here's a screenshot for you (M1 16" MacBook Pro):

Screenshot 2023-07-21 at 09 50 01
mpiffari commented 1 year ago

HI @dinesharjani , thanks for your answer.

Yes, I know that iOS env is much more limited than Android: you don't know how is the "Extended scan & connect" information retrieved from system? Through CBCentralManager maybe?

About Android do you know something else?

Thanks a lot

dinesharjani commented 1 year ago

@mpiffari we don't share nRF Connect code, that's the one app, for now, we're not open-sourcing.

But getting this is quite trivial:

CBCentralManager.supports(CBCentralManager.Feature.extendedScanAndConnect)

mpiffari commented 1 year ago

@dinesharjani thanks for reference. And for Android: I guess it is all well defined in Android Developers guide, but I can not find correct reference for API that return such capabilities.

dinesharjani commented 1 year ago

I leave the Android side to @philips77 He'll reply when he can

philips77 commented 1 year ago

You have a lot of those methods in BluetoothAdapter class here: https://developer.android.com/reference/android/bluetooth/BluetoothAdapter#isLe2MPhySupported() Some other properties depend on Android version, e.g. native HID support.