所以我最近经历了很多麻烦,试图弄清楚如何检查wifi连接是否真的在Android上运行。我知道有很多线程在社区中有类似的问题,但是那些主要来自 ConnectivityManager 的问题,它似乎只能检查是否存在已建立的WiFi连接,而不是足够。
我也看到有人建议 ping / HTTP 检查,但我想知道是否有办法绕过这些方法,因为那会使用任何可用的数据。
我打算在定期检查连接是否可用且手机是否在线的服务中运行解决方案,尽管我不太确定这是否是实现目标的可行方法。
服务
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;
}
}
请帮忙!
答案 0 :(得分:1)
如果不对某些数据进行采样,就无法检测实际的连接质量,因此如果您不想进行ping式请求,除了简单的检查之外,您不会有很多其他选项无论你是否与某事有关。
Facebook创建了一个非常有用的库:
收听应用中的当前网络流量并对网络质量进行分类。