YUKAI / konashi-android-sdk

konashi Android SDK
http://konashi.ux-xu.com
Apache License 2.0
7 stars 7 forks source link

Konashi v1/v2を(無意識的に)切り替え可能にする #4

Closed izumin5210 closed 9 years ago

izumin5210 commented 9 years ago

3 関連

WHY

開発者(SDK利用者)にKonashiのバージョンを意識させるのはエレガントではない. どうにかして自動識別できたほうが当然ながら使い勝手は向上する.

HOW

konashiの接続フロー

deviceName.startWith(KONASHI_DEVICE_NAME) == true(KonashiBaseManageのconstants)ならばリストに表示

  • KonashiBaseManager.java#L350付近,#onLeScan()
  • KONASHI_DEVICE_NAMEはv1がkonashi,v2はkonashi2

このdevice.getName()を利用すればバージョン識別が可能っぽい?

KonashiBaseManager#connect()でdeviceをmConnectedDeviceとかに保存して mConnectedDevice.getName()からv1/v2を返すメソッドをKonashiBMに実装したら

enum KonashiVersion {
    V1, V2;
}

みたいなのを定義しておけば拡張性も高い

sagiii commented 9 years ago

ありがとうございます。

ios-sdkでは、software_revision_stringでバージョンの切り替えを行っています。(基本的にはkonashiのファームウェアバージョンに対応しており、konashi2は2.x.xとすることとしています)

izumin5210 commented 9 years ago

iOSのやつ: https://github.com/YUKAI/konashi-ios-sdk/blob/275f3804be6b96ac4c56859f48b320f01fb9e946/Konashi/Konashi/Impl/KNSPeripheralBaseImpl.m#L20

sagiii commented 9 years ago

あるいは、 https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.software_revision_string.xml が本家になります。

izumin5210 commented 9 years ago

一旦close(また気が向いたらやる)