当前位置: 首页 > 面试题库 >

互联网监听器Android示例

廉高邈
2023-03-14
问题内容

我正在开发一个Android应用程序,该应用程序将继续保持与Internet的连接。如果互联网是陶氏的,则应向用户提供适当的消息。

有没有像Internet Listener这样的东西?或如何实施此事件,以便每当没有Internet连接时都应发出警报。


问题答案:

为此创建一个广播接收器,并将其注册到清单文件中。

首先创建一个新类NetworkStateReceiver并扩展BroadcastReceiver。

public class NetworkStateReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
     Log.d("app","Network connectivity change");
     if(intent.getExtras()!=null) {
        NetworkInfo ni=(NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
        if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) {
            Log.i("app","Network "+ni.getTypeName()+" connected");
        }
     }
     if(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) {
            Log.d("app","There's no network connectivity");
     }
   }
}

将此代码放在“ application”元素下的AndroidManifest.xml中:

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

并添加此权限

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

编辑

此代码仅检测连接性变化,但无法判断其连接的网络是否可以访问互联网。使用此方法检查-

public static boolean hasActiveInternetConnection(Context context) {
    if (isNetworkAvailable(context)) {
        try {
            HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
            urlc.setRequestProperty("User-Agent", "Test");
            urlc.setRequestProperty("Connection", "close");
            urlc.setConnectTimeout(1500); 
            urlc.connect();
            return (urlc.getResponseCode() == 200);
        } catch (IOException e) {
        Log.e(LOG_TAG, "Error checking internet connection", e);
        }
    } else {
    Log.d(LOG_TAG, "No network available!");
    }
    return false;
}


 类似资料:
  • 问题内容: 我已经有了这段侦听连接性更改的代码- 我使用此代码检查连接- 但是问题是,如果网络突然失去了互联网连接而没有任何连接更改,则此代码将无用。有什么方法可以创建广播接收器侦听器以更改Internet连接吗?我有一个Web应用程序,突然的Internet连接更改会引起问题。 问题答案: 尝试这个 对于广播接收器 不要忘记将其放入你的AndroidManifest.xml 希望这会为你加油!

  • 我已经有了监听连接变化的代码- 我用这个代码检查互联网连接——互联网检查 但问题是,如果网络突然失去互联网连接,而没有任何连接变化,这个代码是无用的。是否有任何方法来创建广播接收器侦听器为互联网连接的变化?我有一个网络应用程序,突然的互联网连接变化会导致问题。

  • 问题内容: 我想检查Android手机的网络何时关闭。我可以捕获该事件吗? 我没有得到正确的API或任何可以解释相同内容的示例。如果有人做过或有任何示例链接将非常有帮助。 问题答案: 新的Java类: 你的AndroidManifest.xml中“ manifest”元素下的新xml: 你的AndroidManifest.xml中“ application”元素下的新xml:

  • 问题内容: 我想将Listener放在上。我寻找信息,它是这样的: 问题在于Eclipse认为它是的,并且不起作用。我怎样才能解决这个问题? 问题答案: 你可以这样做:

  • 它运行良好,突然它开始显示我“连接没有互联网”我没有做任何改变我的路由器。同一台笔记本电脑。 这是我目前所尝试的: -检查更新 -重启/关机笔记本电脑 -删除模拟器并添加新模拟器 -和 -从中删除文件夹 -模拟器扩展控件->设置->代理->手动代理配置+主机名 谢谢 编辑:我看过几个类似的问题,到目前为止还没有解决。我仍然使用上面的命令来打开仿真程序,并强制它使用8.8.8.8,这样它就可以有一个

  • 我在mac OS HS 10.13.4上直接连接到我的路由器,没有代理。 我甚至试着删除所有的AVD,重新安装它们。我甚至试着用奥利奥Android 8.1安装了最新的Pixel 2 似乎什么都不起作用。有人面对这个问题并找到解决办法吗?