چک کردن وضعیت اینترنت گوشی در اندروید
دوشنبه 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 تشکر