當我們進入App的時候,首先會判斷目前的網絡狀态是否可用,如果不可用就彈出一個Dialog讓使用者進行網絡的設定,點選設定的時候跳轉到系統的網絡設定界面。
運作效果:
網絡狀态的檢查(WangKeUtils.java):
/**
* 檢查網絡是否可用
* @param context
* @return true,false
*/
public static boolean isNetWorkAvailable(Context context){
ConnectivityManager connectManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectManager.getActiveNetworkInfo();
return (info!=null && info.isAvailable());
}
需要注意的是,在檢查目前裝置的網絡狀态是否可用的時候需要加上權限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
設定界面的跳轉:
Intent intent = new Intent("android.settings.WIRELESS_SETTINGS");
startActivity(intent);
完整代碼:
public class T44Fragment extends Fragment {
private AlertDialog alertDialog;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_t44, container, false);
if(!WangkeUtils.isNetWorkAvailable(getActivity())){
showSetNetWorkDialog(getActivity());
}
return view;
}
private void showSetNetWorkDialog(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("網絡資訊提示");
builder.setMessage("目前網絡不可用,請先進行設定");
builder.setPositiveButton("設定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent("android.settings.WIRELESS_SETTINGS");
startActivity(intent);
}
});
builder.setNegativeButton("退出", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog = builder.create();
alertDialog.show();
}
}