Android में WiFi स्टेट चेंज लिस्टनर और नेटवर्क टाइप डिटेक्शन
यह उदाहरण दर्शाता है कि WifiManager और ConnectivityManager का उपयोग करके नेटवर्क स्टेट चेंज कैसे मॉनिटर करें और WiFi प्रोग्रामेटिकली ऑन/ऑफ कैसे करें।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें और प्रोजेक्ट बनाएं।
चरण 2: लेआउट में बटन और टेक्स्ट जोड़ें
res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16sp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="Android Device Network Listener based on on/off network"
android:textSize="24sp"
android:textStyle="bold" />
<Button
android:layout_marginTop="30dp"
android:onClick="SwitchWIFION"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="WiFi चालू करें"/>
<Button
android:layout_marginTop="10dp"
android:onClick="SwitchWIFIOFF"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="WiFi बंद करें"/>
</LinearLayout>
चरण 3: MainActivity.java - नेटवर्क मॉनिटरिंग और WiFi कंट्रोल
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import java.util.Objects;
public class MainActivity extends AppCompatActivity {
WifiManager wifiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = Objects.requireNonNull(connectivityManager).getActiveNetworkInfo();
NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (activeNetInfo != null) {
Toast.makeText(getApplicationContext(), "Active Network Type: " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
}
if (mobNetInfo != null) {
Toast.makeText(getApplicationContext(), "Mobile Network Type: " + mobNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
}
}
public void SwitchWIFION(View view) {
Objects.requireNonNull(wifiManager).setWifiEnabled(true);
Toast.makeText(getApplicationContext(), "WiFi चालू", Toast.LENGTH_SHORT).show();
}
public void SwitchWIFIOFF(View view) {
Objects.requireNonNull(wifiManager).setWifiEnabled(false);
Toast.makeText(getApplicationContext(), "WiFi बंद", Toast.LENGTH_SHORT).show();
}
}
चरण 4: AndroidManifest.xml में अनुमतियां
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<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>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
महत्वपूर्ण नोट्स
CHANGE_WIFI_STATEअनुमति WiFi ऑन/ऑफ के लिए आवश्यक हैACCESS_NETWORK_STATEनेटवर्क टाइप जानने के लिए- Android 10+ (API 29+) में
setWifiEnabled()डिप्रिकेटेड है - यूज़र को सेटिंग्स में भेजें - रियल-टाइम नेटवर्क चेंज के लिए
BroadcastReceiverका उपयोग करें
ऐप चलाएं
डिवाइस कनेक्ट करें, Run पर क्लिक करें। ऐप खुलने पर वर्तमान नेटवर्क टाइप दिखेगा। बटनों से WiFi ऑन/ऑफ टेस्ट करें।