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

时间:2013-08-29 06:14:20

标签: android

我需要花时间在2G网络,3G网络或数据断开连接上花费时间。 我搜索了android引用,但找不到任何解决方案。 有没有办法获得这些统计数据?

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

2 个答案:

答案 0 :(得分:0)

连接检查如何

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;
    }

然后计算时间......

不要忘记清单中的<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

答案 1 :(得分:0)

没有更好的方法,TrafficStats只包含数据统计信息。您必须为CONNECTIVITY_CHANGED意图注册BroadcastReceiver。 你还必须听电话启动(RECEIVE_BOOT_COMPLETED)。 关机比较棘手。我会为TIMER_TICK添加一个监听器,这将给你一分钟精确的正常运行时间,这对于这个应用程序来说足够了。您可以在启动时处理此问题,从最后一个网络状态的计数器中减去停机时间。