web-dev-qa-db-ja.com

Androidを使用して、アプリケーションからWi-Fi設定画面を呼び出す方法

通常、Settings > Wireless controls > wifi settingsをクリックして、エミュレータでWi-Fi設定画面を取得しています。作成したWi-Fiボタンを押すと、プログラムからWi-Fi設定画面に直接移動する必要があります。連絡先、Intent.setData(Android.provider.contacts ...........)を使用して処理できるログを呼び出します。 Androidプログラムから設定サブメニュー/メニューを開く方法はありますか?
これに関するアドバイスまたはサンプルコードを教えてください。

74
Rajendar

_Android.provider.Settings_ を見て、さまざまな設定画面を起動するために使用できる一連のIntentアクションを確認してください(例、_ACTION_WIFI_SETTINGS_)。

EDIT:コーディング行を追加します。

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));

155
CommonsWare

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));
}
31
kim myoungho

コンテキストでインテントを呼び出すだけで、これを試してください:

startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
26
Victor Ruiz C.

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>

これにより、設定にエントリが表示され、プラットフォームの設定アクティビティが呼び出されます

10
kingston

私はアプリに次のように実装しました:

     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());
    }
1
Hitesh Sahu

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);
1
Jayakrishnan PM

ボタンをクリックしてリッスナーをクリック

startActivityForResult(new Intent(Settings.ACTION_WIFI_SETTINGS)、0);

1
Rahul Patil