如何从接收方拨打电话取决于互联网连接与否?

时间:2012-05-11 05:18:44

标签: android using broadcast

我知道如何在活动中检查互联网是否可用,我的要求是,实际上当设备处于离线状态(无互联网)时,我在数据库中存储了一些值,当涉及到在线时必须传递数据库值没有用户交互性的服务器。我怎样才能做到这一点。 我得到了这个例子How to check the Internet Connection periodically in whole application?,但它仅适用于一个活动,如何使其成为全局活动。

3 个答案:

答案 0 :(得分:7)

在接收器中使用此功能

<receiver android:name=".UpdateReceiver" >
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter>
    </receiver>

您的UpdateRecieiver

 public class UpdateReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {


      ConnectivityManager connectivityManager = (ConnectivityManager) 
                                   context.getSystemService(Context.CONNECTIVITY_SERVICE );
      NetworkInfo activeNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
      boolean isConnected = activeNetInfo != null && activeNetInfo.isConnectedOrConnecting();   
      if (isConnected)       
          Log.i("NET", "connecte" +isConnected);   
      else Log.i("NET", "not connecte" +isConnected);
    }
}

答案 1 :(得分:0)

试试这个功能

  

public static boolean isInternetAvailable(Context context) {
            ConnectivityManager cm =
                (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            if (netInfo != null && netInfo.isConnectedOrConnecting()) {
                return true;
            }
            return false;
        }

并在清单中

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

享受..

答案 2 :(得分:0)

你需要在你的应用中实现服务的概念。此服务将在后台运行,并根据需要将数据传递给服务器 请查看此链接以获取参考http://developer.android.com/guide/topics/fundamentals/services.html