چک کردن وضعیت اینترنت گوشی در اندروید

دوشنبه 7 دی 1394

در این مقاله قصد داریم که با استفاده از یک دکمه بتوانیم اینترنت گوشی خود را چک نماییم که آیا اینترنت وصل است یا اینکه قطع می باشد.

چک کردن وضعیت اینترنت گوشی  در اندروید

بهتر است وضعیت اینترنت را قبل از درخواست http چک نمایید.

می توانید قبل از خواندن این موضوع مقاله ی روشن و خاموش کردن wifi با استفاده از ابزار switch در اندروید را بخوانید.

ابتدا فایل androidmanifest را باز نمایید و مجوز دسترسی برای اتصال اینترنت را وارد نمایید به صورت زیر:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.barnamenevisan.detectinternet"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="15"/>
    <application android:label="checkinternet" android:icon="@drawable/logo_01">
        <activity
                android:name=".AndroidDetectInternetConnectionActivity"
                android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- Network State Permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

یک کلاس جدید به صورت زیر ایجاد نمایید.

package com.barnamenevisan.detectinternet;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/**
 * Created by Esmaili-PC on 26/12/2015.
 */
public class ConnectionDetector {
    private Context _context;

    public ConnectionDetector(Context context) {
        this._context = context;
    }

    public boolean isConnectingToInternet() {
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i = 0; i < info.length; i++)
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                        return true;
                    }

        }
        return false;
    }
}

در زیر از یک متد استفاده کرده ایم این متد برای بررسی اینترنت که تابع را درست یا نادرست بر می گرداند.

ConnectionDetector cd = new ConnectionDetector(getApplicationContext());
 
Boolean isInternetPresent = cd.isConnectingToInternet(); // true or false

در activity مربوط قطعه کد زیر را قرار دهید به صورت زیر:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical" >

    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="مرجع تخصصی برنامه نویسان"
            android:padding="20dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true"
            android:textSize="20dp" android:gravity="center"/>

    <Button android:id="@+id/btn_check"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="چک کردن وضعیت اینترنت"
            android:layout_centerInParent="true"/>

</RelativeLayout>

در کلاس زیر ما از یک alertdialog استفاده می کنیم که اگر اینترنت فعال بود پیغام  فعال بودن را می دهد و اگر غیر فعال بود پیغام قطع بودن اینترنت را می دهد.

import android.app.Activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
/**
 * Created by Esmaili-PC on 26/12/2015.
 */
public class AndroidDetectInternetConnectionActivity extends Activity {
    Boolean isInternetPresent = false;

    // Connection detector class
    ConnectionDetector cd;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btnStatus = (Button) findViewById(R.id.btn_check);

        // creating connection detector class instance
        cd = new ConnectionDetector(getApplicationContext());

        /**
         * Check Internet status button click event
         * */
        btnStatus.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                // get Internet status
                isInternetPresent = cd.isConnectingToInternet();

                // check for Internet status
                if (isInternetPresent) {
                    // Internet Connection is Present
                    // make HTTP requests
                    showAlertDialog(AndroidDetectInternetConnectionActivity.this, "اینترنت فعال است",
                            "اینترنت دستگاه شما فعال می باشد", true);
                } else {
                    // Internet connection is not present
                    // Ask user to connect to Internet
                    showAlertDialog(AndroidDetectInternetConnectionActivity.this, "اینترنت فعال نیست",
                            "اینترنت دستگاه شما غیر فعال می باشد", false);
                }
            }

        });

    }

    /**
     * Function to display simple Alert Dialog
     * @param context - application context
     * @param title - alert dialog title
     * @param message - alert message
     * @param status - success/failure (used to set icon)
     * */
    public void showAlertDialog(Context context, String title, String message, Boolean status) {
        AlertDialog alertDialog = new AlertDialog.Builder(context).create();

        // Setting Dialog Title
        alertDialog.setTitle(title);

        // Setting Dialog Message
        alertDialog.setMessage(message);

        // Setting alert dialog icon
        alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail);

        // Setting OK Button
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
            }
        });

        // Showing Alert Message
        alertDialog.show();
    }
}

خروجی به صورت زیر خواهد بود:

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید