【发布时间】:2018-03-26 15:33:06
【问题描述】:
我的应用程序在 wifi 和移动网络中运行良好,但无法检测到何时通过蓝牙网络共享连接。
public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}
return false;
}
我尝试运行其他一些应用程序。他们也显示没有网络连接,但谷歌应用程序运行完美,其他一些应用程序(如 whatsap)也是如此。想知道他们是如何做到的,以及为什么大多数应用程序都忽略了这一点..
谁能告诉我一种通过所有可用方式(包括蓝牙泛和代理等)检查 android 中互联网连接的方法。
任何帮助将不胜感激。提前谢谢..
【问题讨论】:
-
是检测蓝牙的tethering状态,不是通过它检查网络连通性
-
只要尝试 ping 诸如 google 之类的网站,无论连接来自何处。
-
这些答案都错过了:您应该使用 ConnectivityManager.requestNetwork(),这样它就可以打开 Wifi/蓝牙/无论您需要什么。例如,如果 Android 禁用了数据,简单地检查连接对您没有帮助。