This commit is contained in:
2026-02-10 09:51:18 +08:00
commit 634e0b9456
150 changed files with 18730 additions and 0 deletions
+114
View File
@@ -0,0 +1,114 @@
//获取mac地址
// "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>"
// "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>"
// "<uses-permission android:name=\"android.permission.NETWORK_STACK\" />"
// "<uses-permission android:name=\"android.permission.INTERNET\" />"
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)
})
}
// <uses-permission android:name="android.permission.BLUETOOTH" />
/**
* 获取蓝牙 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
}
}