Normalerweise erhalte ich einen Wi-Fi-Einstellungsbildschirm auf dem Emulator, indem ich auf das klicke Settings > Wireless controls > wifi settings
. Ich muss von meinem Programm aus direkt zum Bildschirm mit den WLAN-Einstellungen wechseln, wenn ich auf die von mir erstellte WLAN-Schaltfläche drücke. Kontakte, Anrufprotokolle, die wir mithilfe von Intent.setData (android.provider.contacts ...........) bearbeiten können. Gibt es eine Möglichkeit, Untermenüs / Menüs für Einstellungen in einem Android-Programm zu öffnen?
Bitte geben Sie mir diesbezüglich Ratschläge oder Beispielcode.
77
FLAG_ACTIVITY_NEW_TASK
ist nötig ?Intents
richtig verarbeitet, wenn sich die Einstellungen-App bereits im Speicher befindet, aber ich habe dieses spezielle Szenario nicht ausprobiert.Beispiel
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)); }
quelle
Versuchen Sie Folgendes: Rufen Sie einfach eine Absicht mit einem Kontext auf:
startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
quelle
Wenn Sie es aus der XML-Datei tun möchten:
<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>
Daraufhin wird in Ihren Einstellungen ein Eintrag angezeigt, der die Einstellungsaktivität der Plattform aufruft
quelle
android.settings.WIFI_SETTINGS
Action.Hier ist das Code-Snippet zum Öffnen der Seite mit den WLAN-Einstellungen
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);
quelle
Klicken Sie auf die Schaltfläche Klicken Sie auf Listner
quelle
Ich habe es so in meiner App implementiert:
if (Connectivity.isConnected(this)) { SERVER_IP = Connectivity.getIPAddress(true) } else { SERVER_IP = "Not Connected to Network" Snackbar.make(appRoot, "Not Connected to Network", Snackbar.LENGTH_INDEFINITE) .setAction("Open Settings") { //open network settings startActivity(Intent(Settings.ACTION_WIFI_SETTINGS)) }.show() } } public static boolean isConnected(Context context) { NetworkInfo info = Connectivity.getNetworkInfo(context); return (info != null && info.isConnected()); }
quelle
Wenn Sie mit Android 10 arbeiten und den Benutzer dazu bringen möchten, das WLAN einzuschalten, müssen Sie nicht mehr zum Bildschirm mit den WLAN-Einstellungen navigieren. Sie können das Einstellungsfenster verwenden
Intent panelIntent = new Intent(Settings.Panel.settings_panel_type); startActivityForResult(panelIntent);
quelle