自动重新连接到互联网

时间:2012-03-05 11:37:46

标签: android

我正在开发Android聊天应用程序。启动时,应用程序启动服务。该服务连接到聊天服务器。如果由于某种原因连接断开,用户可以单击按钮并调用reconnect()函数。

该应用程序在移动设备上运行。该应用程序通过Wi-Fi连接到Internet。如果使用手机行走的用户离开Wi-Fi覆盖区域,则连接断开。我希望我的应用程序在这种情况下自动尝试重新连接到Internet。在您看来,最好的方法是什么?

1 个答案:

答案 0 :(得分:6)

添加到清单:

...
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 
<uses-permission android:name="android.permission.INTERNET">            </uses-permission>
...
    <receiver android:name=".Internet" android:enabled="true"> 
        <intent-filter> 
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter> 
    </receiver> 
...

接收器:

    package YourPackage;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;

    public class Internet extends BroadcastReceiver
    {    
        @Override
        public void onReceive(final Context context, Intent intent) 
        {   
            if (intent.getAction().equalsIgnoreCase("android.net.conn.CONNECTIVITY_CHANGE"))
            {
                if isInternet(context)
                { 
                    // Your Code
                }
            }       
        }

        public boolean isInternet(Context context) 
        {
            ConnectivityManager IM = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = IM.getActiveNetworkInfo();
            return activeNetworkInfo != null;
        }     
    }