android10獲取WiFi名稱 已經連接的WiFi名稱 SSID


WifiManager.NETWORK_STATE_CHANGED_ACTION 廣播在Android9.0還有效,Android10.0已經無效了。

WifiInfo wifiInfo = intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO);
String bssid = intent.getStringExtra(WifiManager.EXTRA_BSSID);

解決辦法:
android10如果要用到wifi相關的api時要引用ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION權限。
添加權限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

使用方法:


public static String getWIFISSID(Activity activity) {
    String ssid = "unknown id";
 
    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.O || Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
 
        WifiManager mWifiManager = (WifiManager) activity.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
 
        assert mWifiManager != null;
        WifiInfo info = mWifiManager.getConnectionInfo();
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
            return info.getSSID();
        } else {
            return info.getSSID().replace("\"", "");
        }
    } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O_MR1) {
 
        ConnectivityManager connManager = (ConnectivityManager) activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
        assert connManager != null;
        NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
        if (networkInfo.isConnected()) {
            if (networkInfo.getExtraInfo() != null) {
                return networkInfo.getExtraInfo().replace("\"", "");
            }
        }
    }
    return ssid;

原文鏈接:
Android10的WIFI 名稱讀取為空解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM