getAllNetworks устарел
Я пишу под 6 android (подскажите что можно сделать по быстрому чтобы работало начиная с 6 андроида)
Ругается что устарел
предупреждение: [устаревшее] getAllNetworks() в ConnectivityManager устарело
Network[] allNetworks = ConnectivityMgr.getAllNetworks(); // добавлено в API 21 (Lollipop)
.
public class ConnectionDetector {
public static boolean isNetworkConnected;
private Context context;
public ConnectionDetector(Context context) {
this.context = context;
}
public boolean isConnected(){
isNetworkConnected = false;
ConnectivityManager connectivityMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Network[] allNetworks = connectivityMgr.getAllNetworks(); // added in API 21 (Lollipop)
for (Network network : allNetworks) {
NetworkCapabilities networkCapabilities = connectivityMgr.getNetworkCapabilities(network);
if (networkCapabilities != null) {
if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
|| networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)
|| networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET))
isNetworkConnected = true;
}
}
return isNetworkConnected;
}}
Ответы (1 шт):
Автор решения: Дмитрий Сахно
→ Ссылка
Работает с //api >23 (но пока работает) они там уже придумали что-то новое и скоро будет опять БОЛЬ
public class ConnectionDetector {
public static boolean isNetworkConnected;
private Context context;
public ConnectionDetector(Context context) {
this.context = context;
}
public boolean isConnected(){
//api >23
isNetworkConnected = false;
final ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
final Network n = cm.getActiveNetwork();
if (n != null) {
final NetworkCapabilities nc = cm.getNetworkCapabilities(n);
return (nc.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI));
}
}
return isNetworkConnected;
}}