标签: mobile-data

如何处理wifi和移动数据之间的网络变化?

我正在建立一个VoIP应用程序.当用户在WiFi与移动数据之间切换时,在VoIP呼叫期间,我在处理场景时遇到问题.

在我的通话屏幕活动中,我已注册接收器,这有助于我获得有关网络更改方案的通知.

这是我用于检测onRecieve方法中网络变化的代码.

conn_name是包含先前连接名称的私有类级别变量.

ConnectivityManager connectivity_mgr = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE));
    NetworkInfo net_info = connectivity_mgr.getActiveNetworkInfo();

    if (net_info != null && net_info.isConnectedOrConnecting() && !conn_name.equalsIgnoreCase("")) {
        new_con = net_info.getExtraInfo();        
        if (new_con != null && !new_con.equalsIgnoreCase(conn_name))
            network_changed = true;
        conn_name = (new_con == null) ? "" : new_con;
        connectionStatus ="connected";        
    } else {
        if (net_info != null && conn_name.equalsIgnoreCase("")){
            conn_name = net_info.getExtraInfo();
            connectionStatus ="connected";
            network_changed = true;
        }else if(!new_con.equals(conn_name)) {    
            conn_name = "";
            connectionStatus ="disconnected";
            network_changed = true;          
        }        
    }
Run Code Online (Sandbox Code Playgroud)



所以使用上面的方法我能够检测网络变化.但是当我与WiFi连接时会发生一件奇怪的事情.
当我的应用程序最初启动时,它与移动数据连接.当用户进入他已知的WiFi区域时,他连接到他已知的WiFi.由于WiFi总是被选为默认路由,因此android会切换到WiFi,我会收到WiFi已经打开的网络通知.所以我将我的应用IP地址更新为WiFi IP地址.这里没有问题.但是移动数据仍然是连接的同时getActiveNetworkInfo() …

networking android android-wifi mobile-data android-connectivitymanager

19
推荐指数
1
解决办法
8383
查看次数

iOS应用程序-在某些设备上无法蜂窝访问我们的域

使用React Native应用程序(仅测试了使用生成的应用程序create-react-app),一些iPhone用户遇到了一个问题,即当通过蜂窝数据连接时,该应用程序几乎永远无法向我们的API发出Web请求。出现问题的域指向Amazon Elastic Load Balancer(第7层,SSL终止),后者指向Nginx反向代理(位于EKS Kubernetes集群内部)。该应用程序调用的其他API(例如Mapbox)可以在蜂窝数据上正常工作,包括在专用服务器上托管的其中一种。唯一不起作用的请求是我们ELB域上的请求。当用户切换到WiFi时,我们的应用能够向该域发出Web请求。在均运行iOS 12.3.1的iPhone 7,iPhone 8和iPhone X上已经观察到这种情况。一种设备是Verizon,其他5种是AT&T。每个API调用都是HTTPS。删除并重新安装应用程序并重新启动设备不能解决问题。我们在所有情况下都确认了在Settings > Cellular > [App name]和中为该应用程序启用了蜂窝数据Settings > [App name] > Use Cellular Data

该应用程序是使用React Native构建的,Web请求是通过cross-fetch库执行的。

我们能够找到有问题的设备并通过Xcode运行它。这是Xcode中捕获的错误堆栈的子集:

nw_connection_copy_connected_local_endpoint [C12] Connection has no local endpoint
2019-06-27 11:26:16.841347-0400 myapp[23700:1527268] [BoringSSL] 
nw_protocol_boringssl_get_output_frames(1301) [C10.1:2][0x117d5a050] get output frames failed, state 8196
Run Code Online (Sandbox Code Playgroud)
2019-06-27 11:26:22.465855-0400 myapp[23700:1527305] [BoringSSL] nw_protocol_boringssl_error(1584) [C20.1:2][0x119b0e420] Lower protocol stack error: 54
2019-06-27 11:26:22.466665-0400 myapp[23700:1527305] TIC TCP Conn Failed [20:0x280022400]: 1:54 Err(54)
Run Code Online (Sandbox Code Playgroud)
2019-06-27 11:26:23.040101-0400 myapp[23700:1527399] Task <DD5FDD4A-1BE0-41ED-AAC4-9EB07F61F109>.<7> …
Run Code Online (Sandbox Code Playgroud)

iphone ios react-native mobile-data

7
推荐指数
1
解决办法
291
查看次数

Android如何通过wifi和移动来了解每天的互联网总数据使用情况

如何了解每天的互联网总数据使用情况?

例如,在一天结束时我使用了800mb,那么它应该像"2015年5月20日的800mb的互联网使用率"一样返回.

那么如何检测总数据使用情况呢?

经过大量的谷歌搜索,我只能在发送和接收字节中找到数据使用,但不能在总使用中找到.

并且还想将使用分为wifi和移动数据.

android wifi android-data-usage mobile-data

5
推荐指数
1
解决办法
2745
查看次数