چک کردن وضعیت اینترنت گوشی در اندروید
دوشنبه 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(); } }
خروجی به صورت زیر خواهد بود:
- Android
- 3k بازدید
- 3 تشکر