使用Wi-Fi方式和4G方式将手机接入Internet的区别是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Wi-Fi方式和4G方式将手机接入Internet的区别是啥?相关的知识,希望对你有一定的参考价值。
使用Wi-Fi方式和4G方式将手机接入Internet的区别为:IP地址不同、使用局限性不同、流量不同。
一、IP地址不同
1、使用Wi-Fi方式:使用Wi-Fi方式的访问IP为wifi连接的无线路由器分配的IP地址。
2、使用4G方式:使用4G方式的访问IP为移动通信基站分配的IP地址。
二、使用局限性不同
1、使用Wi-Fi方式:使用Wi-Fi方式使用局限性大,需要在无线路由器的网络辐射范围内。
2、使用4G方式:使用4G方式使用局限性小,在移动通信基站的网络辐射范围内即可。
三、流量不同
1、使用Wi-Fi方式:使用Wi-Fi方式不需要消耗流量,通过无线路由器可以无时间限制使用。
2、使用4G方式:使用4G方式需要消耗流量,流量用完就不可再使用。
参考技术A 事实上WIFI就是WLAN(无线局域网联盟)的一个商标,该商标仅保障使用该商标的商品互相之间可以合作,与标准本身实际上没有关系,但因为WIFI 主要采用802。11b协议,因此人们逐渐习惯用WIFI来称呼802。11b协议。详情- 官方电话官方服务
- 官方网站宽带129宽带159号卡宽带智慧家庭全屋WiF
我无法通过 WIFI 连接到 WI-FI DIRECT 制作的接入点
【中文标题】我无法通过 WIFI 连接到 WI-FI DIRECT 制作的接入点【英文标题】:I can't connect to the access point made by WI-FI DIRECT via WIFI 【发布时间】:2020-10-05 09:28:17 【问题描述】:我使用 android WI-FI P2P API 创建了一个接入点,我想使用 WIFI(不是 wifi 直连)和以下代码与另一部手机连接:
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";
conf.preSharedKey = "\""+ networkPass +"\"";
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list )
if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\""))
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
并具有以下权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
但它没有连接到那个接入点。 但是 sumsung wifi manager 很容易连接到它。 我尝试了许多库来连接,但结果是一样的。 我想这可能是因为接入点没有互联网连接,我无法连接到它。 请帮助我,我需要为我的应用程序解决这个问题。坦克
【问题讨论】:
【参考方案1】:我解决了这个问题,我想与你分享解决方案。 我使用 WIFI DIRECT API 来发现接入点并检索它的信息(如密码)来连接它,但我意识到当您使用 WIFI DIRECT API 来发现服务时,您无法同时使用 WIFI 连接到接入点(我认为这是错误)。所以你应该先停止服务发现,然后连接到接入点。 我使用了以下代码:
public void connectToAccessPoint(GroupAccessPoint groupAccessPoint)
stopServiceDiscovery(new WifiP2pManager.ActionListener()
@Override
public void onSuccess()
connect(groupAccessPoint);
@Override
public void onFailure(int reason)
connect(groupAccessPoint);
);
public void stopServiceDiscovery(@Nullable WifiP2pManager.ActionListener stopDiscoveryListener)
if (wifiP2pManager == null) return;
wifiP2pManager.clearServiceRequests(channel, new DefaultActionListener(actionListener, Action.CANCEL_DISCOVERING));
wifiP2pManager.setDnsSdResponseListeners(channel, null, null);
wifiP2pManager.stopPeerDiscovery(channel, stopDiscoveryListener);
private void connect(GroupAccessPoint groupAccessPoint)
WifiUtils.withContext(activity.getApplicationContext())
.connectWith(groupAccessPoint.ssid, groupAccessPoint.password)
.setTimeout(12000)
.onConnectionResult(new ConnectionSuccessListener()
@Override
public void success()
actionListener.onSuccess(Action.JOIN_GROUP);
@Override
public void failed(@NonNull ConnectionErrorCode errorCode)
actionListener.onFailure(Action.JOIN_GROUP);
).start();
【讨论】:
以上是关于使用Wi-Fi方式和4G方式将手机接入Internet的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章