Closed izumin5210 closed 9 years ago
開発者(SDK利用者)にKonashiのバージョンを意識させるのはエレガントではない. どうにかして自動識別できたほうが当然ながら使い勝手は向上する.
deviceName.startWith(KONASHI_DEVICE_NAME) == true(KonashiBaseManageのconstants)ならばリストに表示 KonashiBaseManager.java#L350付近,#onLeScan() KONASHI_DEVICE_NAMEはv1がkonashi,v2はkonashi2
deviceName.startWith(KONASHI_DEVICE_NAME) == true(KonashiBaseManageのconstants)ならばリストに表示
deviceName.startWith(KONASHI_DEVICE_NAME) == true
#onLeScan()
KONASHI_DEVICE_NAME
konashi
konashi2
このdevice.getName()を利用すればバージョン識別が可能っぽい?
device.getName()
KonashiBaseManager#connect()でdeviceをmConnectedDeviceとかに保存して mConnectedDevice.getName()からv1/v2を返すメソッドをKonashiBMに実装したら enum KonashiVersion { V1, V2; } みたいなのを定義しておけば拡張性も高い
KonashiBaseManager#connect()でdeviceをmConnectedDeviceとかに保存して mConnectedDevice.getName()からv1/v2を返すメソッドをKonashiBMに実装したら
KonashiBaseManager#connect()
mConnectedDevice
mConnectedDevice.getName()
enum KonashiVersion { V1, V2; }
みたいなのを定義しておけば拡張性も高い
ありがとうございます。
ios-sdkでは、software_revision_stringでバージョンの切り替えを行っています。(基本的にはkonashiのファームウェアバージョンに対応しており、konashi2は2.x.xとすることとしています)
iOSのやつ: https://github.com/YUKAI/konashi-ios-sdk/blob/275f3804be6b96ac4c56859f48b320f01fb9e946/Konashi/Konashi/Impl/KNSPeripheralBaseImpl.m#L20
あるいは、 https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.software_revision_string.xml が本家になります。
一旦close(また気が向いたらやる)
3 関連
WHY
開発者(SDK利用者)にKonashiのバージョンを意識させるのはエレガントではない. どうにかして自動識別できたほうが当然ながら使い勝手は向上する.
HOW
konashiの接続フロー
この
device.getName()
を利用すればバージョン識別が可能っぽい?