前段時間,做一個Demo時需要判斷機子的網路連接狀況並設定網路,通過查資料找到瞭解決問題的答案
一、判斷網路狀況
private boolean isNetworkAvailable() { //取得系統網路服務 ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); //取得網路資訊 NetworkInfo nk = cm.getActiveNetworkInfo();return nk!=null&&nk.isAvailable(); }
二、設定網路
/** * 設定網路 * 如果機子沒有網路連接則轉入到網路設定介面 * */private void networkSet(){if(isNetworkAvailable()){new Thread(){public void run() {try {sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}Intent intent = new Intent(SplashActivity.this,MainAppActivity.class);startActivity(intent);finish();};}.start();}else{AlertDialog.Builder builder = new Builder(SplashActivity.this);Drawable icon = getResources().getDrawable(R.drawable.dialog_error);builder.setIcon(icon);builder.setTitle(R.string.network_dialog_title);builder.setMessage(R.string.network_dialog_message);builder.setPositiveButton(R.string.network_dialog_positiveButton_text, new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {Intent intent = new Intent();intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");startActivity(intent);}});builder.setNegativeButton(R.string.network_dialog_negativeButton_text, new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {finish();}});builder.create().show();}}
進入到網路設定Activity是通過PackageName和ClassName,這兩項可以通過LogCat處得知(Settings/Wireless&networks)