2010-02-23 6 views
62

का उपयोग कर अपने एप्लिकेशन से वाई-फाई सेटिंग्स स्क्रीन कैसे कॉल कर सकता हूं आम तौर पर मुझे Settings > Wireless controls > wifi settings पर क्लिक करके एम्यूलेटर पर वाई-फाई सेटिंग स्क्रीन मिल रही है। मेरे द्वारा बनाए गए वाई-फाई बटन पर दबाते समय मुझे अपने प्रोग्राम से सीधे वाई-फाई सेटिंग स्क्रीन पर जाना होगा। संपर्क, लॉग इन करें जिन्हें हम Intent.setData (android.provider.contacts ...........) का उपयोग कर संभाल सकते हैं। एंड्रॉइड प्रोग्राम से सेटिंग्स उप मेनू/मेनू खोलने का कोई तरीका है?
कृपया मुझे इस पर सलाह या नमूना कोड दें।मैं एंड्रॉइड

उत्तर

128

Intent की श्रृंखला के लिए देखें जो आप विभिन्न सेटिंग्स स्क्रीन लॉन्च करने के लिए उपयोग कर सकते हैं (उदाहरण के लिए, ACTION_WIFI_SETTINGS)।

संपादित करें: कोडिंग लाइन जोड़ें।

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));

+26

, अधिक विशिष्ट android.app.activity.startActivity (नई ** एंड्रॉयड खोलने के लिए कोड का टुकड़ा है। content.Intent.Intent (android.provider.settings.Settings.ACTION_WIFI_SETTINGS)); ** या उचित * *, ** प्रारंभ गतिविधि (नया इरादा (सेटिंग्स.एक्शन_WIFI_SETTINGS)); ** –

+1

क्या आपको लगता है कि 'FLAG_ACTIVITY_NEW_TASK' है [आवश्यक] (http://stackoverflow.com/a/13385550/281545)? –

+1

@Mr_and_Mrs_D: संभवतः। जब सेटिंग सेटिंग्स पहले से ही स्मृति में है, तो सेटिंग ऐप इन 'इरादों' को ठीक से संभाल नहीं सकता है, लेकिन मैंने इस विशिष्ट परिदृश्य को आजमाया नहीं है। – CommonsWare

31

उदाहरण

ConnectivityManager manager = (ConnectivityManager) 
     getSystemService(MainActivity.CONNECTIVITY_SERVICE); 
/* 
* 3G confirm 
*/ 
Boolean is3g = manager.getNetworkInfo(
     ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting(); 
/* 
* wifi confirm 
*/ 
Boolean isWifi = manager.getNetworkInfo(
     ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting(); 
if (is3g) { 
    textView.setText("3G"); 
} else if (isWifi) { 
    textView.setText("wifi"); 
} else { 
    textView.setText("nothing"); 
    // Activity transfer to wifi settings 
    startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
} 
+0

3 जी और वाईफ़ाई सेटिंग्स खोलने के लिए इसका उपयोग करें: सेटिंग्स.एक्शन_WIRELESS_SETTINGS – MBH

9

आप xml फ़ाइल से यह करने के लिए करना चाहते हैं:

<PreferenceScreen 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:key="@string/setting_key" 
     android:summary="@string/setting_summary" 
     android:title="@string/setting_title" > 

     <intent 
      android:action="android.settings.WIRELESS_SETTINGS"/> 
    </PreferenceScreen> 

यह अपनी सेटिंग्स में एक प्रविष्टि है कि मंच की सेटिंग्स गतिविधि फोन करेगा दिखाएगा

+0

यह 'android.settings.WIFI_SETTINGS' क्रिया का उपयोग करके मेरे लिए काम करता है। – Diego

22

बस एक संदर्भ के साथ एक इरादा कॉल करना है, इस प्रयास करें:

startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK)); 
0

यहाँ वाईफ़ाई सेटिंग पृष्ठ

Intent intent = new Intent(Intent.ACTION_MAIN, null); 
     intent.addCategory(Intent.CATEGORY_LAUNCHER); 
     ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.wifi.WifiSettings"); 
     intent.setComponent(cn); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 
+1

ओआई में काम नहीं करता "android.content.ActivityNotFoundException: स्पष्ट गतिविधि वर्ग {com.android.settings/com.android.settings.WirelessSettings} ढूंढने में असमर्थ; क्या आपने यह गतिविधि अपने AndroidManifest.xml में घोषित की है? " – JesseBoyd

+0

वह मेरे लिए भी काम नहीं करता है। –

संबंधित मुद्दे