如何检查 wifi 是否在 android 上接收数据?

How can I check if wifi is receiving data on android?

所以我最近遇到了很多麻烦,试图弄清楚如何检查 wifi 连接是否真的在 Android 上工作。我知道社区中有很多类似问题的线程,但这些线程大多是从 ConnectivityManager 解决问题的,它似乎只能检查是否建立了 WiFi 连接并且这还不够。

我也看到有人建议 ping/HTTP 检查,但我想知道是否有解决这些方法的方法,因为这会使用任何可用数据。

我打算 运行 服务中的解决方案定期检查连接是否可用以及 phone 是否在线,尽管我不太确定这是否是实现我的目标的可行方法.

服务:

package com.mattos.murilorm.meavisaquandotiverinternet;


import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class MyService extends Service{

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this,"Service started!",Toast.LENGTH_LONG).show();
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        Toast.makeText(this,"Service destroyed!",Toast.LENGTH_LONG).show();
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

请帮忙!

如果不对某些数据进行采样,就无法检测实际的连接质量,因此如果您不想执行 ping 样式的请求,除了简单地检查您是否是连接到某物。

Facebook 制作了一个非常有用的库,它将:

Listen to current network traffic in the app and categorize the quality of the network.

叫做network-connection-class