Normalerweise erhalte ich im Emulator einen Wi-Fi-Einstellungsbildschirm, indem Sie auf Settings > Wireless controls > wifi settings
klicken. Wenn Sie auf die von mir erstellte Wi-Fi-Schaltfläche drücken, muss ich direkt aus meinem Programm zum Wi-Fi-Einstellungsbildschirm wechseln. Kontakte, rufen Sie Protokolle auf, die wir mit Intent.setData (Android.provider.contacts ...........) behandeln können. Gibt es eine Möglichkeit, Untermenüs/Menüs von Einstellungen aus einem Android-Programm zu öffnen?
Bitte geben Sie mir Ratschläge oder Beispielcode dazu.
In Android.provider.Settings
finden Sie eine Reihe von Intent
Aktionen, mit denen Sie verschiedene Einstellungsbildschirme aufrufen können (z. B. _ACTION_WIFI_SETTINGS
_).
EDIT: Füge die Codierungszeile hinzu.
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
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));
}
Sie müssen nur eine Absicht mit einem Kontext aufrufen. Versuchen Sie Folgendes:
startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
Wenn Sie es von der XML-Datei aus machen wollen:
<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>
Dadurch wird in Ihren Einstellungen ein Eintrag angezeigt, der die Aktivität der Plattform für die Einstellungen aufruft
Hier ist der Code-Ausschnitt, um die Seite mit den WLAN-Einstellungen zu öffnen
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);
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());
}
Klicken Sie auf den Button Listner
startActivityForResult (new Intent (Settings.ACTION_WIFI_SETTINGS), 0);