android 判斷 有沒有網路 ,簡單實現
阿新 • • 發佈:2018-12-07
對應一個按鈕 ,點
public class WlActivity extends AppCompatActivity { Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pdf); btn= findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // https://www.cnblogs.com/guanmanman/p/6769240.html if (isNetworkAvailable(WlActivity.this)) { Toast.makeText(getApplicationContext(), "當前有可用網路!", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "當前沒有可用網路!", Toast.LENGTH_LONG).show(); } } }); } public boolean isNetworkAvailable(Activity activity) { Context context = activity.getApplicationContext(); // 獲取手機所有連線管理物件(包括對wi-fi,net等連線的管理) ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager == null) { return false; } else { // 獲取NetworkInfo物件 NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo(); if (networkInfo != null && networkInfo.length > 0) { for (int i = 0; i < networkInfo.length; i++) { System.out.println(i + "===狀態===" + networkInfo[i].getState()); System.out.println(i + "===型別===" + networkInfo[i].getTypeName()); // 判斷當前網路狀態是否為連線狀態 if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return false; } }
擊對應吐司有沒有忘了,這裡沒有封裝 ,
下面這個對應的簡單 在一個utils類裡面 寫上該方法,直接條用即可
public static boolean isNetworkAvailable(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity == null) { return false; } else { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getState() == NetworkInfo.State.CONNECTED || info[i].getState() == NetworkInfo.State.CONNECTING) { return true; } } } } return false; }
下面就是對應在activity裡面呼叫 我的是一個button按鈕的點選事件
NdK.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!Util.isNetworkAvailable(GBActivity.this)) { Toast.makeText(GBActivity.this,"網路不可用",Toast.LENGTH_LONG).show(); return; } } });