1. 使用WifiManager获取WIFI名称和MAC地址
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
String macAddress = wifiInfo.getMacAddress();
  1. 使用NetworkInterface获取MAC地址
try {
    List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
    for (NetworkInterface intf : interfaces) {
        byte[] mac = intf.getHardwareAddress();
        if (mac == null) {
            continue;
        }
        StringBuilder buf = new StringBuilder();
        for (byte aMac : mac) {
            buf.append(String.format("%02X:", aMac));
        }
        if (buf.length() > 0) {
            buf.deleteCharAt(buf.length() - 1);
        }
        if (intf.getName().equalsIgnoreCase("wlan0")) {
            String macAddress = buf.toString();
            break;
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}
  1. 使用WifiP2pManager获取WIFI名称和MAC地址
WifiP2pManager wifiP2pManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
WifiP2pManager.Channel channel = wifiP2pManager.initialize(this, getMainLooper(), null);
wifiP2pManager.requestGroupInfo(channel, new WifiP2pManager.GroupInfoListener() {
    @Override
    public void onGroupInfoAvailable(WifiP2pGroup group) {
        if (group != null) {
            String ssid = group.getNetworkName();
            String macAddress = group.getOwner().deviceAddress;
        }
    }
});
  1. 使用ConnectivityManager获取WIFI名称
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
String ssid = wifiInfo.getExtraInfo();
  1. 使用BroadcastReceiver监听WIFI状态变化获取WIFI名称和MAC地址
BroadcastReceiver wifiReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
            NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
            if (networkInfo.isConnected()) {
                WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                String ssid = wifiInfo.getSSID();
                String macAddress = wifiInfo.getMacAddress();
            }
        }
    }
};
IntentFilter intentFilter = new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION);
registerReceiver(wifiReceiver, intentFilter);

注意:这些方法可能受到设备和Android版本的限制,有些方法可能无法获取到WIFI名称和MAC地址。

String ssid = wifiInfogetSSID;为什么我的这个方法无法获取WIFI名称?如果可以你用这个方法帮我获取他如果可以的话请帮我想出获取WIFI名称和mac地址的5种方法

原文地址: https://www.cveoy.top/t/topic/bvaS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录