从代码中获取Android WiFi“net.hostname”

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;
    }
}

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...