getAllNetworks устарел

Рейтинг: 0Ответов: 1Опубликовано: 19.04.2023

Я пишу под 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;
    }}

Ответы

▲ 0

Работает с //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;
            
        }}