android10中NetworkInfo廢棄如何解決


怕內容失效,留存

在API 29中,NetworkInfo被標記為棄用。在以往情況下,我們常用 NetworkInfo 來判斷網絡連接與否以及判斷網絡的類型,那么在Android 10中我們可以用 NetworkCapabilities 來代替。代碼中,由於getActiveNetwork需要API > 23,所以在使用時最好加入對於API版本的判斷,在 23 以下的仍使用 NetworkInfo。

public class netWorkChangeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
       ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        Network network = connectivityManager.getActiveNetwork();
        if(network == null){
            Toast.makeText(context,"unavailable",Toast.LENGTH_LONG).show();
        }
        else{
            NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(network);
            assert networkCapabilities != null;
            if(networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)){
                Toast.makeText(context,"Cellular",Toast.LENGTH_LONG).show();
            }
            if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)){
                Toast.makeText(context,"WIFI",Toast.LENGTH_LONG).show();
            }
        }

    }
}

————————————————
版權聲明:本文為CSDN博主「Temple_of_light」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Mr_nuts/article/details/115031075

 

更詳細說明:https://blog.csdn.net/SweetTool/article/details/105377697

————————————————
版權聲明:本文為CSDN博主「二流小寶」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/SweetTool/article/details/105377697


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM