首先需要在 AndroidManifest.xml 中添加获取网络状态的权限:

<uses-permission android:name='android.permission.ACCESS_NETWORK_STATE' />
<uses-permission android:name='android.permission.INTERNET' />

然后在布局文件中添加一个 Button 控件,并设置 android:onClick 属性为'getMacAndIpAddress':

<Button
    android:id='+@id/btn_get_mac_ip'
    android:layout_width='wrap_content'
    android:layout_height='wrap_content'
    android:text='获取MAC和IP地址'
    android:onClick='getMacAndIpAddress' />

接下来在 MainActivity.java 中实现 getMacAndIpAddress 方法:

public void getMacAndIpAddress(View view) {
    WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    String macAddress = wifiInfo.getMacAddress();
    int ipAddress = wifiInfo.getIpAddress();
    String ipAddressStr = String.format('%d.%d.%d.%d', (ipAddress & 0xff), (ipAddress >> 8 & 0xff), (ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff));
    String result = 'MAC地址:' + macAddress + '\nIP地址:' + ipAddressStr;
    System.out.println(result);
    Toast.makeText(this, result, Toast.LENGTH_LONG).show();
}

在方法中,首先获取 WifiManager 实例,并调用 getConnectionInfo 方法获取 WifiInfo 对象。然后通过 WifiInfo 对象获取 MAC 地址和 IP 地址,并将其输出到控制台和屏幕。

需要注意的是,需要在 MainActivity 类中导入以下两个类:

import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;

完整的 MainActivity.java 代码如下:

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void getMacAndIpAddress(View view) {
        WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        String macAddress = wifiInfo.getMacAddress();
        int ipAddress = wifiInfo.getIpAddress();
        String ipAddressStr = String.format('%d.%d.%d.%d', (ipAddress & 0xff), (ipAddress >> 8 & 0xff), (ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff));
        String result = 'MAC地址:' + macAddress + '\nIP地址:' + ipAddressStr;
        System.out.println(result);
        Toast.makeText(this, result, Toast.LENGTH_LONG).show();
    }
}
Android Studio 获取手机 MAC 和 IP 地址 - 代码示例

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

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