我一直在研究这个问题,但一直找不到具体的解决方案。
我正在尝试检测用户何时开始使用他们的互联网(3G,Wifi)。 (或即将开始会更好)。
有没有人知道是否有可以检测到某个人开始使用网络的Intent?我试图做的是在用户开始使用他们的互联网时运行一些代码,无论是3G还是Wifi。
我一直在研究ConnectivityManager和Trafficstats()但到目前为止还无法提出解决方案。我不只是想查看连接是否可用。
我一直在考虑的一个解决方案是创建我自己的意图,但我一直无法找到有关如何创建自己的意图过滤器的任何好文档。 (我见过的大多数教程都说要使用/指定你自己的Intent,但是忽略了如何创建意图)因此,我认为它是一种简单的东西,人们觉得不值得一提。
使用意图背后的想法是,我可以触发代码在用户使用互联网的事件上执行,而不仅仅是连接到它。这将优于具有连续执行的循环,该循环查找发送出的rx / tx字节。
如果有人有任何想法和示例代码,将非常感激。
干杯
答案 0 :(得分:1)
我不知道这是否有帮助,但是这个代码我试图找到什么时候设备进入无网络。我相信你可以修改它来检测它的3G或WiFi。
答案 1 :(得分:0)
从我的一个项目http://code.google.com/p/android-menu-navigator/
复制你可以将它与bandaa25提到的连接状态改变结合起来,我想你已经完成了。
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;
}