Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में नेटवर्क ऑन/ऑफ के आधार पर डिवाइस नेटवर्क लिस्टनर बनाएं

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 ऑन/ऑफ टेस्ट करें।

  1. Android में पेजिनेटिंग टेक्स्ट कैसे बनाएं? Android में पेजिनेटिंग टेक्स्ट कैसे बनाएं?

    यह उदाहरण दर्शाता है कि लंबे टेक्स्ट को पेज में बांटकर (पेजिनेशन) कैसे दिखाया जाए, जैसे ई-बुक रीडर ऐप्स में होता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट XML res/layout/activity_main.xml - नेविगेशन बटन्स के साथ TextView: <?xml version=1.0 encoding=utf-

  1. एंड्रॉइड में नेटवर्क कनेक्शन स्टेटस कैसे मॉनिटर करें? एंड्रॉइड में नेटवर्क कनेक्शन स्टेटस कैसे मॉनिटर करें?

    एंड्रॉइड में नेटवर्क कनेक्टिविटी मॉनिटरिंग यह गाइड नेटवर्क स्टेटस चेक करने, बदलावों को सुनने, और कनेक्शन प्रकार (वाई-फाई, मोबाइल, ईथरनेट) निर्धारित करने के मॉडर्न और लिगेसी तरीकों को कवर करता है। आवश्यक अनुमतियाँ <uses-permission android:name=android.permission.ACCESS_NETWORK_STATE /> <use

  1. एंड्रॉइड में डिवाइस फोन है या टैबलेट कैसे पहचानें एंड्रॉइड में डिवाइस फोन है या टैबलेट कैसे पहचानें

    TelephonyManager और स्क्रीन आकार के माध्यम से डिवाइस प्रकार निर्धारित करना एंड्रॉइड में फोन और टैबलेट के बीच अंतर करने के कई तरीके हैं। सबसे विश्वसनीय विधि TelephonyManager.getPhoneType() है जो वॉयस कॉल क्षमता जांचता है, लेकिन स्क्रीन आकार और UI मोड भी उपयोगी संकेत देते हैं। चरण 1: नया प्रोजेक्ट बन