从代码中获取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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...