Skip to content

Latest commit

 

History

History
241 lines (183 loc) · 4.57 KB

File metadata and controls

241 lines (183 loc) · 4.57 KB

English | 简体中文

notepad-example-android

Notepad SDK示例

功能

  • 扫描设备
  • 连接设备
  • 绑定设备
  • 接收实时笔迹
  • 导入离线字迹
  • 获取设备信息
  • 升级设备固件

扫描设备

val notepadScanner = NotepadScanner(context)
notepadScanner.callback = object : NotepadScanner.Callback {
    override fun onScanResult(result: NotepadScanResult) {
        println("onScanResult $result")
    }
}

notepadScanner.startScan()
// ...
notepadScanner.stopScan()

连接设备

连接从NotepadScanner.Callback#onScanResult中扫描到的result

参数authToken可选,不传则默认为[0x00, 0x00, 0x00, 0x01]

NotepadConnector.callback = object : NotepadConnectorCallback {
    override fun onConnectionStateChange(notepadClient: NotepadClient, state: ConnectionState) {
        println("onConnectionStateChange $state")
    }
    // ...
}

val authToken = null
NotepadConnector.connect(context, result, authToken)
// ...
NotepadConnector.disconnect()

绑定设备

NotepadConnector#connectauthToken绑定设备

notepadClient.claimAuth({
    println("claimAuth complete")
}, {
    println("claimAuth error $it")
})
// ...
notepadClient.disclaimAuth({
    println("disclaimAuth complete")
}, {
    println("disclaimAuth error $it")
})

接收实时笔迹

NotepadClient#setMode

  • NotepadMode.Common

    设备仅保存压力>0的NotePenPointer(含时间戳)到离线字迹

  • NotepadMode.Sync

    设备发送所有NotePenPointer(无时间戳)到连接的手机/Pad

设备默认为NotepadMode.Common(连接/未连接),只有连接后setMode才会更改

notepadClient.setMode(NotepadMode.Sync, {
    println("setMode complete")
}) {
    println("setMode error $it")
}

NotepadClient.Callback#handlePointer

NotepadMode.Sync时,接收NotePenPointer

notepadClient.callback = object : NotepadClient.Callback {
    override fun handlePointer(list: List<NotePenPointer>) {
        println("handlePointer ${list.size}")
    }
    // ...
}

导入离线字迹

离线字迹保存于NotepadMode.Common离线字迹由压力>0的NotePenPointer(含时间戳)组成

离线字迹保存在FIFO队列中。通常我们先获取队列摘要,然后循环导入各个离线字迹

获取队列摘要

NotepadClient#getMemoSummary

获取队列的数量、占用空间等

notepadClient.getMemoSummary({
    println("getMemoSummary success $it")
}) {
    println("getMemoSummary error $it")
}

导入单个离线笔迹

NotepadClient#getMemoInfo

获取FIFO队列中第一个离线笔迹的信息

notepadClient.getMemoInfo({
    println("getMemoInfo success $it")
}) {
    println("getMemoInfo error $it")
}

NotepadClient#importMemo

导入FIFO队列中第一个离线笔迹

notepadClient.importMemo({
    println("importMemo progress $it")
}, {
    println("importMemo success $it")
}) {
    println("importMemo error $it")
}

NotepadClient#deleteMemo

删除FIFO队列中第一个离线笔迹

notepadClient.deleteMemo({
    println("deleteMemo complete")
}) {
    println("deleteMemo error $it")
}

获取设备信息

笔迹范围

println("W: ${notepadClient.width}, H: ${notepadClient.height}")

设备名称

notepadClient.getDeviceName({
    println("getDeviceName success $it")
}) {
    println("getDeviceName error $it")
}

notepadClient.setDeviceName("name", {
    println("setDeviceName complete")
}) {
    println("setDeviceName error $it")
}

电量信息

notepadClient.getBatteryInfo({
    println("getBatteryInfo success $it")
}) {
    println("getBatteryInfo error $it")
}

设备时钟

notepadClient.getDeviceDate({
    println("getDeviceDate success $it")
}) {
    println("getDeviceDate error $it")
}

notepadClient.setDeviceDate(timestamp, {
    println("setDeviceDate complete")
}) {
    println("setDeviceDate error $it")
}

设备自动休眠时长

notepadClient.getAutoLockTime({
    println("getAutoLockTime success $it")
}) {
    println("getAutoLockTime error $it")
}

notepadClient.setAutoLockTime(duration, {
    println("setAutoLockTime complete")
}) {
    println("setAutoLockTime error $it")
}

升级设备固件

使用*.srec文件升级设备固件

notepadClient.upgrade("path", version, {
    println("upgrade progress $it")
}, {
    println("upgrade complete")
}, {
    println("upgrade error $it")
})