Normalmente sto ricevendo la schermata delle impostazioni Wi-Fi sull'emulatore facendo clic su Settings > Wireless controls > wifi settings
. Devo andare direttamente alla schermata delle impostazioni Wi-Fi dal mio programma quando preme il pulsante Wi-Fi che ho creato. Contatti, registro chiamate che possiamo gestire usando Intent.setData (android.provider.contacts ...........). C'è un modo per aprire le impostazioni sottomenu/menu da un programma Android?
Per favore, dammi consigli o esempi di codice su questo.Come posso chiamare la schermata delle impostazioni Wi-Fi dalla mia applicazione utilizzando Android
Come posso chiamare la schermata delle impostazioni Wi-Fi dalla mia applicazione utilizzando Android
risposta
Vedere android.provider.Settings
per una serie di azioni Intent
che è possibile utilizzare per avviare varie schermate di impostazioni (ad esempio, ACTION_WIFI_SETTINGS
).
MODIFICA: Aggiungere la riga di codifica.
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
esempio
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));
}
per aprire le impostazioni 3G e WIFI utilizzare questo: Settings.ACTION_WIRELESS_SETTINGS – MBH
Se si vuole fare dal file 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>
Questo mostrerà una voce nelle impostazioni che chiamerà l'attività impostazioni della piattaforma
Funziona per me utilizzando l'azione 'android.settings.WIFI_SETTINGS'. – Diego
Basta chiamare un intent con un contesto, provare questo:
startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
Ecco il frammento di codice per aprire le impostazioni WiFi pagina
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);
non ha funzionato in OI continua a ricevere "android.content.ActivityNotFoundException: impossibile trovare la classe di attività esplicita {com.android.settings/com.android.settings.WirelessSettings}; hai dichiarato questa attività nel tuo AndroidManifest.xml? " – JesseBoyd
non funziona neanche per me. –
per essere più precisi, android.app.activity.startActivity (nuova ** Android. content.Intent.Intent (android.provider.settings.Settings.ACTION_WIFI_SETTINGS)); ** o con * corretto * utilizzando *, ** startActivity (nuovo Intent (Settings.ACTION_WIFI_SETTINGS)); ** –
pensi che "FLAG_ACTIVITY_NEW_TASK" sia [necessario] (http://stackoverflow.com/a/13385550/281545)? –
@Mr_and_Mrs_D: Possibly. Posso vedere dove l'app Impostazioni potrebbe non gestire correttamente questi 'Intenti 'quando l'app Impostazioni è già in memoria, ma non ho provato questo scenario specifico. – CommonsWare