【发布时间】:2018-08-25 14:45:30
【问题描述】:
我正在使用以下代码进行网络可用检查
public static boolean isNetworkAvailable(Context context) {
int[] networkTypes = {ConnectivityManager.TYPE_MOBILE,
ConnectivityManager.TYPE_WIFI};
try {
ConnectivityManager connectivityManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
for (int networkType : networkTypes) {
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null &&
activeNetworkInfo.getType() == networkType)
return true;
}
} catch (Exception e) {
return false;
}
return false;
}
相同的代码在所有版本中都能完美运行。但我在 Android Oreo 8.0 中遇到了奇怪的问题
此方法在 Android 8.0 版本中即使网络连接也总是返回 false。
设备 - Google Pixel
注意:不知道它的 Android 版本问题或设备问题。
谁帮帮我
【问题讨论】:
-
试试这个 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { registerReceiver(new ConnectionCheck(), new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")); }
-
您能否先在您的 catch 块中添加一条日志记录语句,然后再试一次。没有它,就不可能知道您的问题是否是因为异常会提醒您。
-
@Kiskae 我忘了这个。我会尝试更新你