天天看點

Android檢查目前網絡狀态是否可用并

當我們進入App的時候,首先會判斷目前的網絡狀态是否可用,如果不可用就彈出一個Dialog讓使用者進行網絡的設定,點選設定的時候跳轉到系統的網絡設定界面。

運作效果:

Android檢查目前網絡狀态是否可用并

網絡狀态的檢查(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();



    }

}