问题:鸿蒙系统HarmonyOS如何通过java代码获取设备wifi信息?如何通过自己开发的app获取搭载鸿蒙系统的硬件设备序列号(SN/IMEI/固定的MAC)?
问题追加: 要开发一款app需要绑定到指定硬件设备上使用,这时要获取手机或者MatePad pro的硬件码(刷机恢复出场设置后不会改变的码),但是Android10和鸿蒙系统已经禁止了app获取这些信息的权限,即Android10和鸿蒙HarmonyOS已经禁止了用户获取硬件设备信息的权限,比如IMEI、SN和固定的MAC,使得开发者开发的应用已经无法和硬件绑定试用),还有什么办法可以获取到?
回答: 针对第一个问题,其不同的信息在不同的Class中,wifi信息的话如下: WifiDevice wifiDevice; wifiDevice=WifiDevice.getInstance(context); wifiDevice.isWifiActive();//用于判断wifi是否打开 wifiDevice.isConnected();//用于判断wifi是否连接 Optional<WifiLinkedInfo> linkedInfo = wifiDevice.getLinkedInfo(); linkedInfo.get().getSsid();//用于获取连接的SSID linkedInfo.get().getMacAddress();//用于获取wifi的MAC地址 针对第二个问题,当前没有好的办法,可以获取的一些sn都会变化,华为的MDM都没有这个权限。
说明: 如果是获取具有代表该手机的唯一性的id,类似imei、oaid这些的话,理论上有一种方法是可以的,就是自己用C语言写一个.so的动态库,去手机的指定位置获取你要的设备信息。然后通过JNI接口调用.so动态库的函数,就能得到你要的设备信息了。 以上方法在安卓Android上试过可以,但在鸿蒙HarmonyOS上不一定可行,但如果需要获取可以尝试下。 |