使用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的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

涨知识了!Wi-Fi背后的原理揭秘!

4G基带模块使用总结

[android] 网络链接类型和渠道

LoRa网关介绍

在热点模式下扫描 Android 上的 Wi-Fi 接入点

LoRa基站网关-室内型