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

前端之家收集整理的这篇文章主要介绍了从代码中获取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相关文章