Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách lấy BSSID Wi-Fi hiện tại trên Android

Giới thiệu

BSSID (Basic Service Set Identifier) là địa chỉ MAC của Access Point (router) mà thiết bị đang kết nối. Lấy qua WifiInfo.getBSSID().

Code (MainActivity.java)

public class MainActivity extends AppCompatActivity {

    private TextView textView;

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

        textView = findViewById(R.id.text);

        WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();

        if (wifiInfo != null) {
            String bssid = wifiInfo.getBSSID();
            textView.setText("BSSID (AP MAC): " + (bssid != null ? bssid : "Không xác định"));
        } else {
            textView.setText("Chưa kết nối Wi-Fi");
        }
    }
}

Quyền

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Từ API 23 cần thêm: -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Lưu ý quan trọng

  • Android 6.0 - 9.0: Yêu cầu quyền vị trí (ACCESS_FINE_LOCATION) và GPS bật.
  • Android 10 (API 29)+: App thông thường không thể đọc BSSID thật, trả về 02:00:00:00:00:00 hoặc null. Chỉ app system hoặc có quyền ACCESS_FINE_LOCATION + foreground service mới đọc được.
  • Dùng WifiManager.getScanResults() để quét danh sách AP gần đó (cần quyền vị trí và Android 9+ cần foreground service).