hybrid_plus
Version:
Hybrid Flutter Javascript SDK
91 lines (90 loc) • 3.83 kB
TypeScript
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;