Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有意图检测网络使用情况,无论是3G还是Wifi?_Java_Android_Networking_Connection_Android Intent - Fatal编程技术网

Java 是否有意图检测网络使用情况,无论是3G还是Wifi?

Java 是否有意图检测网络使用情况,无论是3G还是Wifi?,java,android,networking,connection,android-intent,Java,Android,Networking,Connection,Android Intent,我已经研究了一段时间,但一直无法找到具体的解决方案 我试图检测用户何时开始使用互联网(3G、Wifi)。(或即将开始的情况会更好) 是否有人知道是否有意图可以检测到有人开始使用网络?我想做的是,一旦用户开始使用他们的互联网,不管它是3G还是Wifi,都要运行一些代码 我一直在研究ConnectivityManager和Trafficstats(),但到目前为止还没有找到解决方案。我不仅仅是想看看是否有可用的连接 我一直在考虑的一个解决方案是创建我自己的意图,但我找不到任何关于如何创建您自己的意图

我已经研究了一段时间,但一直无法找到具体的解决方案

我试图检测用户何时开始使用互联网(3G、Wifi)。(或即将开始的情况会更好)

是否有人知道是否有意图可以检测到有人开始使用网络?我想做的是,一旦用户开始使用他们的互联网,不管它是3G还是Wifi,都要运行一些代码

我一直在研究ConnectivityManager和Trafficstats(),但到目前为止还没有找到解决方案。我不仅仅是想看看是否有可用的连接

我一直在考虑的一个解决方案是创建我自己的意图,但我找不到任何关于如何创建您自己的意图过滤器的好文档。(我看到的大多数教程都说要使用/指定您自己的意图,但却忽略了说明如何创建意图)因此,我假设这是一件人们认为不值得一提的简单事情

使用意图背后的想法是,我可以触发代码,以便在用户使用互联网时执行,而不仅仅是连接到互联网。这比有一个持续执行的循环寻找发送的rx/tx字节更可取

如果有人有任何想法和示例代码,我们将不胜感激


干杯

我不知道这是否有帮助,但通过这段代码,我试图找到设备何时进入无网络状态。我相信你可以修改它来检测它是3G还是WiFi


我不知道这是否有帮助,但通过这段代码,我试图找到设备何时进入无网络状态。我相信你可以修改它来检测它是3G还是WiFi


从我的一个项目中复制

您可以将其与Banda25提到的连接状态更改相结合,我认为您已经完成了

  public boolean isOnWifi() {
        Log.d(TAG, "Checking if we are on wifi");
        final ConnectivityManager mgrConn = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
        Log.d(TAG, "Retrieved connectivity manager");
        final NetworkInfo network = mgrConn.getActiveNetworkInfo();
        Log.d(TAG, "Retrieved network info: " + network);
        final boolean result = network != null && network.getType() == ConnectivityManager.TYPE_WIFI;
        Log.d(TAG, "Result : " + result);
        return result;
    }

复制自我的一个项目

您可以将其与Banda25提到的连接状态更改相结合,我认为您已经完成了

  public boolean isOnWifi() {
        Log.d(TAG, "Checking if we are on wifi");
        final ConnectivityManager mgrConn = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
        Log.d(TAG, "Retrieved connectivity manager");
        final NetworkInfo network = mgrConn.getActiveNetworkInfo();
        Log.d(TAG, "Retrieved network info: " + network);
        final boolean result = network != null && network.getType() == ConnectivityManager.TYPE_WIFI;
        Log.d(TAG, "Result : " + result);
        return result;
    }

看看问题是否有用。看看问题是否有用。嘿,贾勒克,谢谢你的快速回复。我想做的是,一旦用户开始使用他们的互联网,不管它是3G还是Wifi,都要运行一些代码。使用intent背后的想法是,我可以触发代码在事件上执行,而不是让一个不断执行的循环寻找发送的rx/tx字节。除非我弄错了,否则我相信你们的代码,在并没有网络连接的情况下,只会告诉我我是在使用wifi,还是并没有网络连接。我可以假设用户使用3G或Wifi。我会更新我的问题,让它更清楚。谢谢你的快速回复。我想做的是,一旦用户开始使用他们的互联网,不管它是3G还是Wifi,都要运行一些代码。使用intent背后的想法是,我可以触发代码在事件上执行,而不是让一个不断执行的循环寻找发送的rx/tx字节。除非我弄错了,否则我相信你们的代码,在并没有网络连接的情况下,只会告诉我我是在使用wifi,还是并没有网络连接。我可以假设用户使用3G或Wifi。我会更新我的问题,让它更清楚。干杯Hanks Banda25,我可以假设用户总是连接到3G或Wifi,我需要能够检测到用户何时开始通过3G或Wifi使用大量带宽。是的,我知道你的问题,我想告诉你的是,有一种方法可以在onDataConnectionStateChanged方法中检测到这一点。如果你只是添加此代码并放置日志,你会注意到你会得到一些不同的参数。感谢Banda25,我可以假设用户总是连接到3G或Wifi,我需要能够检测到用户何时开始通过3G或Wifi使用大量带宽。耶,我明白你的问题,我想告诉你的是,有一种方法可以在onDataConnectionStateChanged方法中检测到这一点。如果您只是添加这段代码并放置日志,您会注意到您会得到一些不同的参数。