【Android】擁有權限後依然無法獲取wifissid或返回unknown ssid的解決方法之一

問題描述

擁有了ACCESS_WIFI_STATEACCESS_NETWORK_STATEACCESS_FINE_LOCATION等權限後,獲取當前鏈接Wifi的Ssid依然返“unknown ssid”


手動解決

檢查手機是否打開了位置信息,即手機是否允許定位。一般在下拉菜單欄中有個"位置信息"開關。
在這裏插入圖片描述


代碼判斷

可以使用LocationManager判斷是否開啓了網絡定位。

/**
     * 判斷是否打開網絡定位
     * @param context 用於獲取LocationManager
     * @return true/false
     */
    public static boolean isOpenGps(Context context){
        LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
        if (locationManager != null){
            //這裏只判斷了是否開啓網絡定位
            //還有GPS定位            LocationManager.GPS_PROVIDER
            return locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        }else {
            return false;
        }
    } 

獲取網絡信息的工具類

最後附上最近寫的獲取網絡信息的一個工具類,需要在Application中調用init()。
工具類的GitHub地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章