Android Studio 获取手机 MAC 和 IP 地址 - 代码示例
首先需要在 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();
}
}
原文地址: https://www.cveoy.top/t/topic/mQ6s 著作权归作者所有。请勿转载和采集!