एंड्रॉइड: कैसे सक्षम करें / वाईफाई या इंटरनेट कनेक्शन को अक्षम करने के लिए प्रोग्राम करें


82

कनेक्टिविटी मैनेजर क्लास का उपयोग करके हम वाईफाई या इंटरनेट नेटवर्क तक पहुँच प्राप्त कर सकते हैं:

ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

// ARE WE CONNECTED TO THE NET
if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
  connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
  // ...
}

जहां 0और 1क्रमशः मोबाइल और वाईफाई कनेक्शन को संदर्भित करता है

यदि मेरा एंड्रॉइड डिवाइस दोनों से जुड़ा है, तो क्या हम किसी भी नेटवर्क के बीच स्विच कर सकते हैं या क्या हम किसी भी नेटवर्क को अक्षम कर सकते हैं? एक समारोह का उपयोग कर की तरह:

connec.getNetworkInfo(0).setState(NetworkInfo.State.DISCONNECTED);

क्या आपको मोबाइल डेटा अक्षम विकल्प के लिए कोई समाधान मिला?
— पार्थी

जवाबों:


183

मुझे वाईफ़ाई को सक्षम या अक्षम करने का पता है:

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(status);

जहां स्थिति हो सकती है trueया falseआवश्यकता के अनुसार।

संपादित करें:

आपको अपनी मैनिफ़ेस्ट फ़ाइल में निम्न अनुमतियों की भी आवश्यकता है:

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 

47
प्रकट में भी:<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
— कॉमिक सैंस एमएस लवर्स

2
क्या यह wifiManager.reconnect () से भिन्न है? WifiManager.reassociate () के बारे में क्या? ऊपर दिए गए दृष्टिकोण में भी यदि आप वाईफाई को रीसेट करना चाहते हैं तो क्या आप wifiManager.setWifiEnabled (गलत) और wifiManager.setWifiEnabled (सत्य) को बैक टू बैक कह सकते हैं? या फिर आपको पहले इसे निष्क्रिय करना होगा, फिर इसे फिर से सक्षम करने से पहले कुछ संकेत (प्रसारण रिसीवर आदि) की प्रतीक्षा करें?
— मार्च्य

यदि आप डेमो ट्यूटोरियल फ़ॉट
— किशन धमत

“<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />”की भी जरूरत है।
— जियोनी

क्या एप्लिकेशन से एम डिवाइस में वाईफाई को नियंत्रित करना संभव है?
— निथिनजिथ

30

WiFi सक्षम करने के लिए:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(true);

वाईफाई अक्षम करने के लिए:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(false);

नोट: वाईफाई राज्य के साथ उपयोग करने के लिए, हमें AndroidManifest.xml फ़ाइल के अंदर निम्नलिखित अनुमतियों को जोड़ना होगा:

android.permission.ACCESS_WIFI_STATE
android.permission.UPDATE_DEVICE_STATS 
android.permission.CHANGE_WIFI_STATE

4
केवल CHANGE_WIFI_STATE आवश्यक है, कम से कम Android 4.2 में
— voghDev

1
UPDATE_DEVICE_STATS केवल सिस्टम ऐप्स के लिए है
— marienke

एंड्रॉइड क्यू से, आप सीधे वाईफाई पर / बंद नहीं कर सकते हैं
— रवींद्र कुशवाहा

12

एक पूर्ण समाधान:

try {
    WifiManager wifi = (WifiManager) 
        context.getSystemService(Context.WIFI_SERVICE);

    WifiConfiguration wc = new WifiConfiguration();
    wc.SSID = "\"SSIDName\"";
    wc.preSharedKey  = "\"password\"";
    wc.hiddenSSID = true;
    wc.status = WifiConfiguration.Status.ENABLED; 

    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
    wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

    wc.allowedPairwiseCiphers
        .set(WifiConfiguration.PairwiseCipher.TKIP);
    wc.allowedPairwiseCiphers
        .set(WifiConfiguration.PairwiseCipher.CCMP);
    wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);

    boolean b=wifi.isWifiEnabled();
    if (b) {
        wifi.setWifiEnabled(false);
        Toast.makeText(context, "yes", Toast.LENGTH_SHORT).show();
    } else {
        wifi.setWifiEnabled(true);
        Toast.makeText(context, "no", Toast.LENGTH_SHORT).show();
    }
    //Log.d("WifiPreference", "enableNetwork returned " + b );

} catch (Exception e) {
    e.printStackTrace();
}

संदर्भ: http://amitkumar-android.blogspot.com/p/installation-steps.html


1
वाईफ़ाई कॉन्फ़िगरेशन के साथ वाईफ़ाई प्रबंधक को सेट करने के लिए कॉल गायब है: wifi.addNetwork (wc);
— त्रुटि 454

4
आप अपने SSID और पासवर्ड को हार्ड-कोड क्यों करेंगे? अच्छा विचार नहीं।
— जीवनसोहन

@ lifeson106 मुझे लगता है कि यह केवल प्रदर्शन के उद्देश्य से है।
— बर्ट्राम गिलफॉयल

4

Wifi को अक्षम करने के लिए Wifi के WifiManagerलिए सिस्टम (Android डिवाइस) सेवाएं प्राप्त करने के लिए कक्षा का उपयोग करें :

WifiManager wifi =(WifiManager)getSystemService(Context.WIFI_SERVICE); 

अब वाईफाई की स्थिति प्राप्त करने के लिए कक्षा की वस्तु wifiका WifiManagerउपयोग किया जाता है:

if(wifi.isWifiEnabled())
    //Perform Operation
else
    //Other Operation

और सबसे महत्वपूर्ण बात यह है कि अपने Android मैनिफ़ेस्ट फ़ाइल में निम्नलिखित अनुमति देना न भूलें:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

Android पर Wifi को सक्षम / अक्षम करने के लिए परियोजना की विस्तृत जानकारी और पूर्ण नमूना कोड प्राप्त करने के लिए मेरी वेबसाइट लिंक पर जाएँ ।


3

में Android Q (एंड्रॉयड 10) आप प्रोग्राम अब सक्षम नहीं कर सकते / अक्षम वाईफ़ाई। वाईफाई कनेक्टिविटी को चालू करने के लिए सेटिंग पैनल का उपयोग करें :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    val panelIntent = Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
    startActivityForResult(panelIntent, 0)
} else {
    // use previous solution, add appropriate permissions to AndroidManifest file (see answers above)
    (this.context?.getSystemService(Context.WIFI_SERVICE) as? WifiManager)?.apply { isWifiEnabled = true /*or false*/ }
}

1

अपने प्रदर्शन में इस अनुमति को जोड़ें और वाईफाई राज्य को बदलने के लिए उपरोक्त कोड का उपयोग करें:

 <!--permission ge enable and disable WIFI in android-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

1

मैं संदर्भ ऑब्जेक्ट को सीधे एक्सेस नहीं कर सका।
मेरा समाधान इस प्रकार है:

Context appContext = Android.App.Application.Context;
var wifiManager = (WifiManager)appContext.GetSystemService(WifiService);
wifiManager.SetWifiEnabled(state);

इसके अलावा मुझे कुछ लेखन को बदलना पड़ा। WIFI_SERVICE बनाम वाईफ़ाई सेवा।


0

निम्नलिखित कोड का उपयोग करके पूर्व एंड्रॉइड 10 उपकरणों पर वाईफाई को सक्षम / अक्षम करना संभव है :

WifiManager wifiManager = 
(WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);

(स्थिति) wifiManager.setWifiEnabled;

लेकिन ध्यान दें कि एंड्रॉइड 10 पर अब ऐसा करना संभव नहीं है और शायद आगे भी चल रहा है।
https://issuetracker.google.com/issues/141011684


0

Android 10 (Q) आगे वाईफ़ाई सक्षम / अक्षम नहीं किया जा सकता है जिसे आपको सेटिंग आशय खोलने की आवश्यकता है,

// for android Q and above
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            Intent panelIntent = new 
Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY);
            startActivityForResult(panelIntent, 0);
        } else {
            // for previous android version
            WifiManager wifiManager = (WifiManager) 
this.getApplicationContext().getSystemService(WIFI_SERVICE);
            wifiManager.setWifiEnabled(true);
        }

प्रकट में,

 <uses-permission
    android:name="android.permission.CHANGE_WIFI_STATE"
    android:required="true" />

0

यह विधि अभी से शुरू की गई है जो Android Q से शुरू होती है।

कोशिश करो यह वास्तव में मदद करेगा।

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {// if build version is less than Q try the old traditional method
                    if (!wifiManager.isWifiEnabled()) {
                        wifiManager.setWifiEnabled(true);
                        btnOnOff.setText("Wifi ONN");
                    } else {
                        wifiManager.setWifiEnabled(false);
                        btnOnOff.setText("Wifi OFF");
                    }
                } else {// if it is Android Q and above go for the newer way    NOTE: You can also use this code for less than android Q also
                    Intent panelIntent = new Intent(Settings.Panel.ACTION_WIFI);
                    startActivityForResult(panelIntent, 1);
                }

उदाहरण के साथ नए / पसंदीदा तरीके की ओर इशारा करते हुए?
— user1016765

यह प्रश्न का उत्तर प्रदान नहीं करता है। एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी कर पाएंगे ; इसके बजाय, ऐसे उत्तर प्रदान करें जिन्हें पूछने वाले से स्पष्टीकरण की आवश्यकता न हो । - समीक्षा से
— रयान एम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.