UNPKG

hybrid_plus

Version:

Hybrid Flutter Javascript SDK

91 lines (90 loc) 3.83 kB
import { ExecOptions } from "./core.ts"; /** 安卓扫描模式 */ export declare enum AndroidScanMode { lowPower = 0, balanced = 1, lowLatency = 2, opportunistic = -1 } /** * 扫描蓝牙设备选项 * @param {string[]} services 按服务筛选 * @param {string[]} remoteIds 筛选已知的 remoteId(iOS:128 位 guid,android:48 位 mac 地址) * @param {string[]} names 按名称筛选(完全匹配) * @param {string[]} keywords 按名称筛选(匹配任何子字符串) * @param {number} timeout 在指定持续时间后停止扫描 * @param {int} removeIfGone 如果为 true,将在设备停止显示持续时间后将其移除 * @param {boolean} androidUsesFineLocation 在运行时请求“ACCESS_FINE_LOCATION”权限 * @param {boolean} oneByOne 如果为“true”,我们将逐个流式传输每个广告,可能包括重复的广告。如果为 'false',则对广告进行重复数据删除,并返回设备列表。 * @param {number} continuousDivisor 有助于提高性能。如果除数为 3,则忽略三分之二的广告,处理三分之一的广告。这减少了平台通道导致的主线程使用。扫描计数是按设备进行的,因此您始终可以从每个设备获得第一个播发。如果除数为 1,则返回所有广告。此参数仅对“continuousUpdates”模式有效。 * @param {AndroidScanMode} androidScanMode 选择扫描时要使用的 Android 扫描模式 * @param {boolean} continuousUpdates 如果为“true”,我们会通过处理重复的广告来不断更新“lastSeen”和“rssi”。这需要更多的功率。通常不应使用此选项。 */ export interface StartScanOptions extends ExecOptions<any, any> { services?: string[]; names?: string[]; remoteIds?: string[]; keywords?: string[]; timeout?: number; removeIfGone?: number; androidUsesFineLocation?: boolean; oneByOne?: boolean; continuousDivisor?: number; androidScanMode?: AndroidScanMode; continuousUpdates?: boolean; } /** * 连接蓝牙选项 * @param {string} deviceId 连接蓝牙设备Id * @param {int} timeout 连接超时时间 * @param {int} mtu 仅限 Android。如果设置了,在连接后立即请求更大的 mtu。 * @param {boolean} autoConnect 找到设备后重新连接。 */ export interface ConnectOptions extends ExecOptions<any, any> { deviceId: string; timeout?: number; mtu?: number; autoConnect?: boolean; } /** * 断开蓝牙连接选项 * @param {string} deviceId 连接蓝牙设备Id * @param {int} timeout 断开连接超时时间 * @param {boolean} queue 如果为 true,则将在所有其他操作完成后执行此断开连接请求。如果为 false,则此断开连接请求将立即执行,即跳到 fbp 操作队列的前面,这对于取消正在进行的连接尝试很有用。 */ export interface DisconnectOptions extends ExecOptions<any, any> { deviceId: string; timeout?: number; queue?: boolean; } /** 当前蓝牙状态 */ export declare enum BluetoothAdapterState { unknown = 0, unavailable = 1, unauthorized = 2, turningOn = 3, on = 4, turningOff = 5, off = 6 } /** 蓝牙状态监听回调方法 */ export type BluetoothAdapterStateListener = (result: BluetoothAdapterState) => void; /** 蓝牙广告数据 */ export interface AdvertisementData { advName: string; txPowerLevel?: number; appearance?: number; connectable: boolean; manufacturerData: object; serviceData: object; serviceUuids: string[]; } /** 蓝牙扫描结果 */ export interface ScanResult { device: string; advertisementData: AdvertisementData; rssi: number; timeStamp: string; } /** 扫描结果监听回调方法 */ export type ScanResultListener = (result: ScanResult) => void;