यह उदाहरण ब्रॉडकास्ट रिसीवर के माध्यम से इंटरनेट कनेक्शन की स्थिति की जांच करने के बारे में प्रदर्शित करता है।
चरण 1: Android Studio में नया प्रोजेक्ट बनाएं
File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2: नेटवर्क स्टेट परमिशन जोड़ें
इंटरनेट स्थिति जानने के लिए AndroidManifest.xml फाइल में नेटवर्क स्टेट परमिशन जोड़ें:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.andy.myapplication">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
चरण 3: MainActivity.java संशोधित करें
मुख्य गतिविधि फाइल MainActivity.java की संशोधित सामग्री निम्न है। हमने एक टेक्स्ट व्यू बनाया है, जब उपयोगकर्ता टेक्स्ट व्यू पर क्लिक करता है तो यह broadcastIntent() मेथड को कॉल करके CONNECTIVITY_ACTION इंटेंट ब्रॉडकास्ट करता है।
import android.content.BroadcastReceiver;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private BroadcastReceiver MyReceiver = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyReceiver = new MyReceiver();
TextView click = findViewById(R.id.click);
click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
broadcastIntent();
}
});
}
public void broadcastIntent() {
registerReceiver(MyReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(MyReceiver);
}
}
चरण 4: NetworkUtil क्लास बनाएं
नेटवर्क स्थिति खोजने के लिए NetworkUtil क्लास बनाएं:
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
class NetworkUtil {
public static String getConnectivityStatusString(Context context) {
String status = null;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) {
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
status = "Wifi enabled";
return status;
} else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
status = "Mobile data enabled";
return status;
}
} else {
status = "No internet is available";
return status;
}
return status;
}
}
चरण 5: ब्रॉडकास्ट रिसीवर क्लास बनाएं
MyReceiver.java नाम से एक ब्रॉडकास्ट रिसीवर क्लास बनाएं। यह ब्रॉडकास्ट रिसीवर NetworkUtil क्लास से UI अपडेट करेगा।
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String status = NetworkUtil.getConnectivityStatusString(context);
if (status.isEmpty()) {
status = "No Internet Connection";
}
Toast.makeText(context, status, Toast.LENGTH_LONG).show();
}
}
चरण 6: मैनिफेस्ट में ब्रॉडकास्ट रिसीवर अपडेट करें
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.andy.myapplication">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="MyReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
</application>
</manifest>
चरण 7: activity_main.xml लेआउट
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click here"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
आउटपुट
ऐप्लिकेशन चलाएं। वाईफाई कनेक्शन चयनित होने पर आउटपुट ऐसा दिखेगा।



