Normalement, j'obtiens un écran de configuration Wi-Fi sur l'émulateur en cliquant sur le Settings > Wireless controls > wifi settings
. Je dois aller directement à l'écran des paramètres Wi-Fi de mon programme en appuyant sur le bouton Wi-Fi que j'ai créé. Contacts, appelez les journaux que nous pouvons gérer en utilisant Intent.setData (android.provider.contacts ...........). Y at-il un moyen d'ouvrir les sous-menus/menus d'un programme Android?
Veuillez me donner un conseil ou un exemple de code à ce sujet.Comment puis-je appeler l'écran des paramètres Wi-Fi à partir de mon application à l'aide d'Android
Comment puis-je appeler l'écran des paramètres Wi-Fi à partir de mon application à l'aide d'Android
Répondre
Examinez android.provider.Settings
pour une série d'actions Intent
que vous pouvez utiliser pour lancer divers écrans de paramètres (par exemple, ACTION_WIFI_SETTINGS
).
EDIT: Ajoutez la ligne de codage.
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
exemple
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));
}
pour ouvrir les paramètres 3G et WIFI utilisez ceci: Settings.ACTION_WIRELESS_SETTINGS – MBH
Si vous voulez le faire à partir du fichier 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>
Cela montrera une entrée dans les paramètres qui appellera les paramètres de la plate-forme de l'activité
Cela fonctionne pour moi en utilisant l'action 'android.settings.WIFI_SETTINGS'. – Diego
Il suffit d'appeler une intention avec un contexte, essayez ceci:
startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
Voici l'extrait de code pour ouvrir la page des paramètres wifi
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);
n'a pas fonctionné dans OI continuer à obtenir "android.content.ActivityNotFoundException: Impossible de trouver la classe d'activité explicite {com.android.settings/com.android.settings.WirelessSettings}; avez-vous déclaré cette activité dans votre AndroidManifest.xml? " – JesseBoyd
son ne fonctionne pas pour moi non plus. –
pour être plus précis, android.app.activity.startActivity (nouveau ** android. content.Intent.Intent (android.provider.settings.Settings.ACTION_WIFI_SETTINGS)); ** ou avec une bonne * en utilisant *, ** startActivity (nouvelle intention (Settings.ACTION_WIFI_SETTINGS)); ** –
pensez-vous que 'FLAG_ACTIVITY_NEW_TASK' est [nécessaire] (http://stackoverflow.com/a/13385550/281545)? –
@Mr_and_Mrs_D: Eventuellement. Je peux voir où l'application Paramètres ne peut pas gérer ces 'Intents' correctement lorsque l'application Paramètres est déjà en mémoire, mais je n'ai pas essayé ce scénario spécifique. – CommonsWare