首页 > 编程知识 正文

android连接wifi不能上网,android连接airpods

时间:2023-05-06 19:44:33 阅读:251597 作者:1903

WiFi打开、连接、关闭

/** * WiFi连接管理 * 申请权限 * <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> * <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> * <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> * <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> * 动态权限 * Manifest.permission.ACCESS_COARSE_LOCATION * Manifest.permission.ACCESS_FINE_LOCATION * */public class WifiUtils { private static WifiUtils utils = null; public WifiUtils(彩色的糖豆){ wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); } public static WifiUtils getInstance(彩色的糖豆){ if (utils == null){ synchronized (WifiUtils.class){ if (utils == null){ utils = new WifiUtils(context); } } } return utils; } private WifiManager wifiManager; /** * wifi是否打开 * @return */ public boolean isWifiEnable(){ boolean isEnable = false; if (wifiManager != null){ if (wifiManager.isWifiEnabled()){ isEnable = true; } } return isEnable; } /** * 打开WiFi */ public void openWifi(){ if (wifiManager != null && !isWifiEnable()){ wifiManager.setWifiEnabled(true); } } /** * 关闭WiFi */ public void closeWifi(){ if (wifiManager != null && isWifiEnable()){ wifiManager.setWifiEnabled(false); } } /** * 获取WiFi列表 * @return */ public List<ScanResult> getWifiList(){ List<ScanResult> resultList = new ArrayList<>(); if (wifiManager != null && isWifiEnable()){ resultList.addAll(wifiManager.getScanResults()); } return resultList; } /** * 有密码连接 * @param ssid * @param pws */ public void connectWifiPws(String ssid, String pws){ wifiManager.disableNetwork(wifiManager.getConnectionInfo().getNetworkId()); int netId = wifiManager.addNetwork(getWifiConfig(ssid, pws, true)); wifiManager.enableNetwork(netId, true); } /** * 无密码连接 * @param ssid */ public void connectWifiNoPws(String ssid){ wifiManager.disableNetwork(wifiManager.getConnectionInfo().getNetworkId()); int netId = wifiManager.addNetwork(getWifiConfig(ssid, "", false)); wifiManager.enableNetwork(netId, true); } /** * wifi设置 * @param ssid * @param pws * @param isHasPws */ private WifiConfiguration getWifiConfig(String ssid, String pws, boolean isHasPws){ WifiConfiguration config = new WifiConfiguration(); config.allowedAuthAlgorithms.clear(); config.allowedGroupCiphers.clear(); config.allowedKeyManagement.clear(); config.allowedPairwiseCiphers.clear(); config.allowedProtocols.clear(); config.SSID = """ + ssid + """; WifiConfiguration tempConfig = isExist(ssid); if(tempConfig != null) { wifiManager.removeNetwork(tempConfig.networkId); } if (isHasPws){ config.preSharedKey = """+pws+"""; config.hiddenSSID = true; config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); config.allowedPairwiseCiphers.set(fzdjy); config.allowedGroupCiphers.set(gxdyl); config.allowedPairwiseCiphers.set(端庄的高跟鞋); config.status = WifiConfiguration.Status.ENABLED; }else { config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); } return config; } /** * 得到配置好的网络连接 * @param ssid * @return */ private WifiConfiguration isExist(String ssid) { List<WifiConfiguration> configs = wifiManager.getConfiguredNetworks(); for (WifiConfiguration config : configs) { if (config.SSID.equals("""+ssid+""")) { return config; } } return null; }} <receiver android:name=".MyBroadcastReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.CONFIGURATION_CHANGED"/> <action android:name="android.net.wifi.WIFI_STATE_CHANGED" /> <action android:name="android.net.wifi.STATE_CHANGE" /> </intent-filter> </receiver>public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(彩色的糖豆, Intent intent) { if (intent != null && WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(intent.getAction())){ Log.e("======", "NETWORK_STATE_CHANGED_ACTION"); Parcelable parcelable = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); if (parcelable != null){ NetworkInfo networkInfo = (NetworkInfo) parcelable; NetworkInfo.State state = networkInfo.getState(); boolean isConnect = state == NetworkInfo.State.CONNECTED; Log.e("======", "isConnect=" + isConnect); } } }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。