- Sesame app on
https://play.google.com/store/apps/details?id=co.candyhouse.sesame2
- Sesame app on
https://drive.google.com/file/d/15aRQl6aWBVwJSE4l3ZL-eMisPoe-f2lW/
CANDY HOUSE 公式サイト
SesameSDKは、Androidアプリケーション向けの無料で、シンプル且つパワフルなBluetooth/ AIoTライブラリです。Sesameの公式アプリケーションもこのSesameSDKを使用してすべての機能を構築し実現しております。SesameSDKでできること:
- Sesameデバイスの登録(Sesame 5、Sesame 5 pro、Sesame Bike2、BLE Connector1、Open Sensor1、Sesame Touch 1 Pro、 Sesame Touch 1 、Sesame Bot1、WIFI Module2、Sesame 4、Sesame 3、Sesame Bike1、)
- 施錠、解除、作動させるなど
- 履歴記録の取得
- SesameOS3のアップデート
- デバイスの各種設定
- バッテリー残量の取得
implementation project(':sesame-sdk')
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT " />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
override fun onCreate() {
super.onCreate()
CHBleManager(this)
}
CHBleManagerの初期化は、端末のBluetoothが正常に動作しているか、端末から権限をもらっているか、Bluetoothが起動しているかを判断します。すべてが正常に動作している場合、Bluetoothスキャンが始まります。 Bluetooth Service Uuid:0000FD81-0000-1000-8000-00805f9b34fb
bluetoothAdapter.bluetoothLeScanner.startScan(
mutableListOf(ScanFilter.Builder().setServiceUuid(ParcelUuid(UUID.fromString("0000FD81-0000-1000-8000-00805f9b34fb"))).build()), ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build(), bleScanner)
bleScannerがスキャンしたデバイスをCHDeviceMapに入れる。
private var mDeviceList = ArrayList<CHDevices>()
CHBleManager.delegate = object : CHBleManagerDelegate {
override fun didDiscoverUnRegisteredCHDevices(devices: List<CHDevices>) {
// L.d("devices size",devices.size.toString())
mDeviceList.clear()
mDeviceList.addAll(devices.filter { it.rssi != null }
// .filter { it.rssi!! > -65 }///註冊列表只顯示距離近的
)
mDeviceList.sortBy { it.getDistance() }
mDeviceList.firstOrNull()?.connect { }
leaderboard_list.post((leaderboard_list.adapter as GenericAdapter<*>)::notifyDataSetChanged)
}
}
}
device.connect { }
doRegisterDevice(device)
device.delegate = object : CHDeviceStatusDelegate {
override fun onBleDeviceStatusChanged(device: CHDevices, status: CHDeviceStatus, shadowStatus: CHDeviceStatus?) {
if (status == CHDeviceStatus.ReadyToRegister) {
doRegisterDevice(device)
}
}
}
fun doRegisterDevice(device: CHDevices){
device.register {
it.onSuccess {
// 登録成功
}
it.onFailure {
// 登録失敗
}
}
}
(device as? CHWifiModule2)?.let {
}
(device as? CHSesame2)?.let {
}
(device as? CHSesame5)?.let {
}
(device as? CHSesameTouchPro)?.let {
}
- Sesame 5:このインスタンスオブジェクトは、Sesame5、Sesame5 Pro製品に適用される。
- Sesame Bike 2 : このインスタンスオブジェクトは、Sesame Bike 2 製品に適用される。
- Sesame WiFi Module 2:このインスタンスオブジェクトは、WiFi Module 2 製品に適用される。
- Sesame touch pro:このインスタンスオブジェクトは、 BLE Connector1、 Sesame Touch 1 Pro 、 Sesame Touch 1 製品に適用される。
- Sesame Open Sensor 1:このインスタンスオブジェクトは、Open Sensor 1 製品に適用される。
- Class对象