// SMDT设备管理插件 JavaScript 使用示例 // 获取插件实例 const smdtManager = uni.requireNativePlugin('SmdtManager'); // 检查插件是否加载成功 if (!smdtManager) { console.error('SMDT Manager插件加载失败'); } // 插件初始化检查和重试机制 export const PluginManager = { // 检查插件是否已初始化 async checkInitialization() { return new Promise((resolve) => { console.log("qxj smdtManager",smdtManager); smdtManager.isInitialized((res) => { console.log("qxj isInitialized",res); resolve(res.initialized || false); }); }); }, // 重新初始化插件 async initialize() { return new Promise((resolve, reject) => { smdtManager.initialize((res) => { if (res.error) { reject(res.error); } else { resolve(res); } }); }); }, // 确保插件已初始化(带重试机制) async ensureInitialized(maxRetries = 3) { for (let i = 0; i < maxRetries; i++) { const isInitialized = await this.checkInitialization(); if (isInitialized) { return true; } console.log(`插件未初始化,尝试重新初始化 (${i + 1}/${maxRetries})`); try { await this.reinitialize(); // 等待一段时间后再检查 await new Promise(resolve => setTimeout(resolve, 500)); } catch (error) { console.error(`重新初始化失败:`, error); if (i === maxRetries - 1) { throw new Error('插件初始化失败,请检查设备兼容性'); } } } return false; } }; // 系统功能示例 export const SystemAPI = { // 获取系统字体大小 async getSystemFontSize() { try { // 确保插件已初始化 await PluginManager.ensureInitialized(); return new Promise((resolve, reject) => { smdtManager.getSystemFontSize((res) => { if (res.error) { reject(res.error); } else { resolve(res.fontSize); } }); }); } catch (error) { throw new Error(`获取系统字体大小失败: ${error.message}`); } }, // 设置系统字体大小 setSystemFontSize(fontSize) { return new Promise((resolve, reject) => { smdtManager.setSystemFontSize({ fontSize }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); }, // 获取时间格式 getTimeFormat() { return new Promise((resolve, reject) => { smdtManager.getTimeFormat((res) => { if (res.error) { reject(res.error); } else { resolve(res.timeFormat); } }); }); }, // 设置时间格式 (1: 24小时制, 0: 12小时制) setTimeFormat(timeFormat) { return new Promise((resolve, reject) => { smdtManager.setTimeFormat({ timeFormat }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); }, // 设置音量 (0-100) setVolume(volume) { return new Promise((resolve, reject) => { smdtManager.setVolume({ volume }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); }, // 设置ADB调试 setAdbDebug(enable) { return new Promise((resolve, reject) => { smdtManager.setAdbDebug({ enable }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); } }; // 网络功能示例 export const NetworkAPI = { // 获取WiFi信号强度 getWifiRssi() { return new Promise((resolve, reject) => { smdtManager.getWifiRssi((res) => { if (res.error) { reject(res.error); } else { resolve(res.rssi); } }); }); }, // 获取MAC地址 getMacAddress() { return new Promise((resolve, reject) => { smdtManager.getMacAddress((res) => { if (res.error) { reject(res.error); } else { resolve(res.macAddress); } }); }); }, // 获取IMEI号 getImeiNumber() { return new Promise((resolve, reject) => { smdtManager.getImeiNumber((res) => { if (res.error) { reject(res.error); } else { resolve(res.imei); } }); }); }, // 设置WiFi热点 setWifiAp(ssid, password) { return new Promise((resolve, reject) => { smdtManager.setWifiAp({ ssid, password }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); } }; // 显示功能示例 export const DisplayAPI = { // 设置LCD背光亮度 (0-255) setLcdBackLight(brightness) { return new Promise((resolve, reject) => { smdtManager.setLcdBackLight({ brightness }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); }, // 设置显示密度 setDisplayDensity(density) { return new Promise((resolve, reject) => { smdtManager.setDisplayDensity({ density }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); } }; // 硬件功能示例 export const HardwareAPI = { // 设置LED灯状态 setLedLighted(ledId, enable) { return new Promise((resolve, reject) => { smdtManager.setLedLighted({ ledId, enable }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); }, // 获取LED状态 getLedState(ledId) { return new Promise((resolve, reject) => { smdtManager.getLedState({ ledId }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.state); } }); }); }, // 获取SD卡路径 getSDcardPath() { return new Promise((resolve, reject) => { smdtManager.getSDcardPath((res) => { if (res.error) { reject(res.error); } else { resolve(res.path); } }); }); }, // 获取U盘路径 getUdiskPath() { return new Promise((resolve, reject) => { smdtManager.getUdiskPath((res) => { if (res.error) { reject(res.error); } else { resolve(res.path); } }); }); }, // 设置USB电源 setUsbPower(enable) { return new Promise((resolve, reject) => { smdtManager.setUsbPower({ enable }, (res) => { if (res.error) { reject(res.error); } else { resolve(res.result); } }); }); } }; // 使用示例 export const UsageExamples = { // 系统设置示例 async systemExample() { try { // 获取当前字体大小 const fontSize = await SystemAPI.getSystemFontSize(); console.log('当前字体大小:', fontSize); // 设置字体大小 const result = await SystemAPI.setSystemFontSize(18); console.log('设置字体大小结果:', result); // 设置为24小时制 await SystemAPI.setTimeFormat(1); console.log('时间格式设置为24小时制'); // 设置音量为50% await SystemAPI.setVolume(50); console.log('音量设置为50%'); } catch (error) { console.error('系统设置错误:', error); } }, // 网络功能示例 async networkExample() { try { // 获取WiFi信号强度 const rssi = await NetworkAPI.getWifiRssi(); console.log('WiFi信号强度:', rssi, 'dBm'); // 获取MAC地址 const macAddress = await NetworkAPI.getMacAddress(); console.log('MAC地址:', macAddress); // 设置WiFi热点 await NetworkAPI.setWifiAp('MyHotspot', '12345678'); console.log('WiFi热点设置成功'); } catch (error) { console.error('网络功能错误:', error); } }, // 显示控制示例 async displayExample() { try { // 设置屏幕亮度为50% await DisplayAPI.setLcdBackLight(128); console.log('屏幕亮度设置为50%'); // 设置显示密度 await DisplayAPI.setDisplayDensity(320); console.log('显示密度设置为320 DPI'); } catch (error) { console.error('显示控制错误:', error); } }, // 硬件控制示例 async hardwareExample() { try { // 打开LED灯 await HardwareAPI.setLedLighted(1, true); console.log('LED灯已打开'); // 获取LED状态 const ledState = await HardwareAPI.getLedState(1); console.log('LED状态:', ledState ? '开启' : '关闭'); // 获取存储路径 const sdPath = await HardwareAPI.getSDcardPath(); console.log('SD卡路径:', sdPath); // 启用USB电源 await HardwareAPI.setUsbPower(true); console.log('USB电源已启用'); } catch (error) { console.error('硬件控制错误:', error); } } }; // 导出插件实例供直接使用 export default smdtManager;