如何在android上获取连接/网络使用时间

如何在android上获取连接/网络使用时间,android,Android,我需要获得手机在2G网络、3G网络或数据断开连接上花费的时间。 我搜索了android参考资料,但找不到任何解决方案。 有什么方法可以得到这些数据吗 我想使用一个监听器来检测网络/连接类型的变化,并使用一个计数器来计算2G时间、3G时间和断开连接的时间。但是我想知道是否有更好/更简单的方法来解决这个问题。像这样的连接检查怎么样 public boolean isOnline() { // check if an internet connection is present

我需要获得手机在2G网络、3G网络或数据断开连接上花费的时间。 我搜索了android参考资料,但找不到任何解决方案。 有什么方法可以得到这些数据吗


我想使用一个监听器来检测网络/连接类型的变化,并使用一个计数器来计算2G时间、3G时间和断开连接的时间。但是我想知道是否有更好/更简单的方法来解决这个问题。

像这样的连接检查怎么样

public boolean isOnline() {
        // check if an internet connection is present
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (!(netInfo != null && cm.getActiveNetworkInfo().isAvailable() && cm
                .getActiveNetworkInfo().isConnected())) {

            return false;
        }
        return true;
    }
然后计算时间


不要忘记清单中的

没有更好的方法,清单中只包含数据统计信息。你必须注册一个广播接收器。 您还必须监听电话启动(接收启动完成)。 关闭更为棘手。我会为TIMER_TICK添加一个侦听器,这将为您提供一分钟精确的正常运行时间,这对于这个应用程序来说已经足够了。您可以在启动时进行处理,从上一个网络状态计数器中减去停机时间