//获取mac地址 // "" // "" // "" // "" export function getMacAddress() { try { var NetworkInterface = plus.android.importClass('java.net.NetworkInterface') var interfaces = NetworkInterface.getNetworkInterfaces() // 直接使用 Enumeration 的方法(而非 Iterator) while (plus.android.invoke(interfaces, 'hasMoreElements')) { var intf = plus.android.invoke(interfaces, 'nextElement') var name = plus.android.invoke(intf, 'getName') if (name === 'wlan0' || name === 'eth0' || name === 'wlan1') { var macBytes = plus.android.invoke(intf, 'getHardwareAddress') if (macBytes) { var macStr = Array.from(macBytes) .map(byte => (byte & 0xff).toString(16).padStart(2, '0')) .join(':') .toUpperCase() console.log('MAC Address:', macStr) return macStr } } } console.error('No valid MAC address found') return null } catch (e) { console.error('Failed to get MAC address:', e) return null } } // 获取唯一设备ID export function getDeviceId() { var settings = plus.android.importClass('android.provider.Settings') var Secure = settings.Secure var context = plus.android.runtimeMainActivity() var androidId = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID) return androidId } // 备用方案 获取UUID export function generateUUID() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8 return v.toString(16) }) } // /** * 获取蓝牙 MAC 地址(兼容 Android 5.0+) * @returns {string|null} MAC 地址(格式 "XX:XX:XX:XX:XX:XX"),失败返回 null */ function getBluetoothMacLegacy() { if (plus.os.name !== 'Android') { console.error('仅支持 Android') return null } try { const BluetoothAdapter = plus.android.importClass('android.bluetooth.BluetoothAdapter') const adapter = BluetoothAdapter.getDefaultAdapter() if (!adapter) { console.error('蓝牙未启用') return null } const mac = plus.android.invoke(adapter, 'getAddress') if (mac && mac !== '02:00:00:00:00:00') { return mac } return null } catch (e) { console.error('获取失败:', e) return null } } function getBluetoothMacModern() { try { const Context = plus.android.importClass('android.content.Context') const BluetoothManager = plus.android.importClass('android.bluetooth.BluetoothManager') const mainActivity = plus.android.runtimeMainActivity() const bluetoothManager = mainActivity.getSystemService(Context.BLUETOOTH_SERVICE) const adapter = plus.android.invoke(bluetoothManager, 'getAdapter') if (!adapter) return null const mac = plus.android.invoke(adapter, 'getAddress') return mac && mac !== '02:00:00:00:00:00' ? mac : null } catch (e) { console.error('BluetoothManager 方式失败:', e) return null } } export function getBluetoothMacAddress() { const Build = plus.android.importClass('android.os.Build') const isModernAndroid = Build.VERSION.SDK_INT >= 23 // Android 6.0+ // 先尝试新方法,再回退旧方法 const mac = isModernAndroid ? getBluetoothMacModern() : getBluetoothMacLegacy() if (mac) { console.log('获取到蓝牙 MAC:', mac) return mac } else { console.error('无法获取真实 MAC') return null } }