您好,连接隐藏wifi的方法:
龙华网站建设公司创新互联,龙华网站设计制作,有大型网站制作公司丰富经验。已为龙华上千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的龙华做网站的公司定做!
1、打开设置,进入WIFI开关界面
2、点击WIFI链接,选择要链接的WIFI.
3、选择下面的其他链接方式。
4、输入隐藏的WIFI名称,就是路由器发出来信号的名字。
5、点击安全性选择加密方式,一般加密方式都是WPA/WPA2PSK。
6、输入WIFI的密码,点击确定即可连接该wifi网络了。
WiFi是一种无线联网技术,常见的是使用无线路由器。那么在这个信号覆盖的范围内都可以采用WiFi连接的方式进行联网。如果无线路由器连接了一个ADSL线路或者其他的联网线路,则又被称为“热点”。
在Android中对WiFi操作,Android本身提供一些有用的包,在anroid.net.wifi包下面。
是一种特殊的 Ad-hoc LAN (一种支持点对点访问的无线网络应用模式)的应用,一个无线网络至少由一个连接到有线网络的AP和若干无线工作站组成,这种配置称为一个基本服务装置。一群计算机设定相同的
BSS名称,即可自成一个group,而此BSS名称,即所谓BSSID。通常,手机WLAN中,bssid其实就是无线路由的MAC地址。
网络ID。
无线网络的安全认证模式。
SSID(Service Set Identif)用于标识无线局域网,SSID不同的无线网络是无法进行互访的。
wifi无线连接的描述,包括接入点,网络连接状态,隐藏的接入点,IP地址,连接速度,MAC地址,网络ID,信号强度等信息。这里简单介绍一下这里的方法:
用来管理我们的wifi 连接,这里已经定义好了一些类,可以供我们使用,获取WiFi网卡状态。
WIFI网卡的状态是由一系列的整形常量来表示的。
WiFi需求申请权限,在AndroidManifest.xml文件中填写。
1.打开WiFi
2.扫描WiFi信号
3.得到扫描WIFI结果
4.根据WIFI的名称SSID判定指定WIFI是否已经配置好,配置好则返回其networkId,用于连接。之前尝试了BSSID地址没成功,所以只能使用SSID
5.如果需要连接的WIFI没有配置好,即没有保存密码。则为指定名称ssid的WIFI添加密码信息psw,添加成功后返回给其分配的networId,同于连接
6.根据步骤6配置好需要连接的WIFI密码信息后,下面通过networkId连接指定WIFI。在连接经过步骤6刚添加配置信息的WIFI信号之前需要重新执行下步骤4,得到新的配置好信息的列表。
先进行WiFi权限的声明
!-- 获取WiFi状态 --
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /
uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /
!-- api = Android29调用setWifiEnabled --
uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /
!-- 定位权限(api = 23 用于 WIFI扫描)--
uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /
uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /
注意:ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION是危险级权限需要使用中还需要动态申请,申请其中一个即可。
WifiManager mWifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if (Build.VERSION.SDK_INT =Build.VERSION_CODES.R) {
Intent panelIntent =new Intent(Settings.Panel.ACTION_WIFI);
startActivityForResult(panelIntent,null);
}else{ mWifiManager.setWifiEnabled(!isEnable);}
可以通过监听系统广播来了解WiFi状态。
WIFI_STATE_CHANGED_ACTION:WiFi开关状态;
SCAN_RESULTS_AVAILABLE_ACTION:WiFi列表变化;
RSSI_CHANGED_ACTION:WiFi信号强度变化。
IntentFilter mFilter =new IntentFilter();
mFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
mFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
mReceiver =new BroadcastReceiver() {
@Override
public void onReceive(Context context,Intent intent) {
handleEvent(intent);
}
};
registerReceiver(mReceiver, mFilter);
private void handleEvent(Intent intent) {
String action = intent.getAction();
if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {
final int wifiState =mWifiManager.getWifiState();
if(wifiState ==WifiManager.WIFI_STATE_ENABLED){
postDelayed(()-{mRefreshLayout.autoRefresh();},1000);
}
}else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
}else if (WifiManager.RSSI_CHANGED_ACTION.equals(action)) {
if(System.currentTimeMillis() -mLastUpateWifiRssiTime 1000){//刷新太快
return;
}
}
updateWifiChange();
}
切记:wifistate切换到WifiManager.WIFI_STATE_ENABLED,mWifiManager.isWifiEnabled()需要有个等待时间切换。
3的基础上解析广播应答
private void updateWifiChange() {
final int wifiState =mWifiManager.getWifiState();
switch (wifiState) {
case WifiManager.WIFI_STATE_ENABLED:
ArrayListresults = (ArrayList)mWifiManager.getScanResults();
updateApListView(results);
mWlanSb.setChecked(mWifiManager.isWifiEnabled() );
break;
case WifiManager.WIFI_STATE_ENABLING:
break;
case WifiManager.WIFI_STATE_DISABLING:
mAdapter.clearData();
mWlanSb.setChecked(mWifiManager.isWifiEnabled() );
break;
case WifiManager.WIFI_STATE_DISABLED:
break;
}
}