相关疑难解决方法(0)

如何处理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
查看次数

如何在整个应用程序中定期检查Internet连接?

我正在做一个通过应用程序使用Internet连接的应用程序.如果在使用应用程序时丢失了Internet连接,则应用程序将强行关闭.为避免这种情况,如果互联网不可用,我想显示一条警报消息.我怎样才能做到这一点.在登录时,我正在使用以下代码检查连接.但是我如何在后台为整个应用程序执行此操作.

private boolean haveInternet(){
        NetworkInfo info = ((ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
        if (info==null || !info.isConnected()) {
                return false;
        }
        if (info.isRoaming()) {
                // here is the roaming option you can change it if you want to disable internet while roaming, just return false
                return true;
        }
        return true;
}
Run Code Online (Sandbox Code Playgroud)

谢谢..

android

12
推荐指数
1
解决办法
2万
查看次数

如何在android应用程序运行时在后台连续检查互联网连接

我想在我的android应用程序运行时在后台连续检查互联网连接.我的意思是从应用程序的启动到应用程序的结束.我该怎么做?该方法应该是什么?

android

7
推荐指数
2
解决办法
2万
查看次数

android高效的方式将图像上传到服务器

我正在寻找一种方法将图像从android上传到php服务器,目前我正在将图像编码为base64并发送它,但它太慢了,有没有更好的方法

我正在使用凌空作为网络客户端.

php java upload android android-volley

0
推荐指数
1
解决办法
2141
查看次数