2015-11-30 75 views
0

我想创建一个广播接收器接收意图,当“没有互联网接入”发生时。我已经创建了一个用于连接更改的广播接收器,但这不是我所需要的,因为这个接收器在没有互联网WIfi或移动数据时被调用。那么,我如何创建接收器没有互联网接入?安卓广播接收器没有互联网接入

 @Override 
     public void onReceive(Context context, Intent intent) { 
      ConnectivityManager connectivityManager = (ConnectivityManager) context 
          .getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo info = connectivityManager.getActiveNetworkInfo(); 

     } 

    }; 

回答

-1

1,创建通过广播

public class NetworkChangeReceiver extends BroadcastReceiver { 

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

     if(checkInternet(context)) 
     { 
      Toast.makeText(context, "Network Available Do operations",Toast.LENGTH_LONG).show(); 
     } 
    } 
    boolean checkInternet(Context context) { 
     ServiceManager serviceManager = new ServiceManager(context); 
     if (serviceManager.isNetworkAvailable()) { 
      return true; 
     } else { 
      return false; 
     } 
    } 
} 

2类exteding创建服务,检查互联网ServiceManager.java

public class ServiceManager extends ContextWrapper { 

    public ServiceManager(Context base) { 
     super(base); 
    } 
    public boolean isNetworkAvailable() { 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = cm.getActiveNetworkInfo(); 
      if (networkInfo != null && networkInfo.isConnected()) { 
     return true; 
     } 
      return false; 
     } 
} 

3.在清单文件权限:

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

我如何注册broadcats接收器?与哪个意图? <意图滤波器> : – Amalo

+0

则可以使用意图过滤 –

+0

使用menifest文件<名称= “NetworkChangeReceiver” 接收机机器人>寄存器<操作机器人:名称= “互联网”>

0

那么它的伤心地说,Android操作系统没有互联网可访问任何广播尽管它给你的WiFi广播|数据连接,但不保证互联网是有限的或没有。有没有像

你可以做的是运行一个连续任务,达到像谷歌某些服务器与IP 8.8.8.8转机,如果你得到响应,这意味着互联网访问。

如果你需要运行定时器任务的详细信息,您可以阅读这些

http://developer.android.com/reference/java/util/Timer.html

或者

http://developer.android.com/reference/android/os/CountDownTimer.html