如何使用Android从我的应用程序调用Wi-Fi设置屏幕

Raj*_*dar 74 android wifi

通常我点击模拟器上的Wi-Fi设置屏幕Settings > Wireless controls > wifi settings.按下我创建的Wi-Fi按钮时,我需要从我的程序直接进入Wi-Fi设置屏幕.联系人,调用我们可以使用Intent.setData处理的日志(android.provider.contacts ...........).有没有办法从Android程序打开设置子菜单/菜单?
请给我建议或示例代码.

Com*_*are 156

查看可用于启动各种设置屏幕android.provider.Settings的一系列Intent操作(例如,ACTION_WIFI_SETTINGS).

编辑:添加编码行.

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));

  • 更具体一点,android.app.activity.startActivity(new**android.content.Intent.Intent(android.provider.settings.Settings.ACTION_WIFI_SETTINGS));**或正确使用*,**startActivity(new意图(Settings.ACTION_WIFI_SETTINGS));** (27认同)
  • 打开常规无线设置使用此命令:startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)); (3认同)
  • 你认为`FLAG_ACTIVITY_NEW_TASK`是[需要](http://stackoverflow.com/a/13385550/281545)吗? (2认同)
  • @patrickjason91:“应用程序的 Intent 调用是否有可能控制某些配置,以便 WiFi 设置或任何其他设置屏幕的显示方式?” - 一般情况下,不使用任何记录的附加功能。 (2认同)

小智 30

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));
}
Run Code Online (Sandbox Code Playgroud)


Vic*_*iz. 26

只需要使用上下文调用intent,试试这个:

startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
Run Code Online (Sandbox Code Playgroud)


kin*_*ton 11

如果要从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>
Run Code Online (Sandbox Code Playgroud)

这将在您的设置中显示一个条目,该条目将调用平台的设置活动

  • 它使用android.settings.WIFI_SETTINGS动作对我有效。 (2认同)

Kes*_*lme 11

如果您使用的是 Android 10,并且您的目标是让用户打开 WiFi,则您不必再实际导航到 Wifi 设置屏幕。您可以使用设置面板

一个 API,允许应用程序在其应用程序上下文中向用户显示设置。

Intent panelIntent = new Intent(Settings.Panel.settings_panel_type);
startActivityForResult(panelIntent);
Run Code Online (Sandbox Code Playgroud)