当
Android设备连接到wifi AP时,它会使用以下名称标识自己:
android_cc1dec12345e6054
如何从Android应用程序中获取该字符串?不是为了改变它,只是为了读出.
编辑:
这是我路由器的Web界面的屏幕截图,显示了所有连接设备的列表.请注意列表中的两个Android设备 – 如何从设备上运行的Java代码中读取该字符串?
解决方法
建立@ Merlevede的答案,这是一个快速而肮脏的方式来获得该物业.它是一个私有API,所以它可能会发生变化,但这个代码至少从Android 1.5开始就没有被修改过,所以它可能是安全的.
import android.os.Build; import java.lang.reflect.Method; /** * Retrieves the net.hostname system property * @param defValue the value to be returned if the hostname could * not be resolved */ public static String getHostName(String defValue) { try { Method getString = Build.class.getDeclaredMethod("getString",String.class); getString.setAccessible(true); return getString.invoke(null,"net.hostname").toString(); } catch (Exception ex) { return defValue; } }