developer tip

Android를 사용하여 내 애플리케이션에서 Wi-Fi 설정 화면을 호출하려면 어떻게해야합니까?

copycodes 2020. 10. 20. 07:45
반응형

Android를 사용하여 내 애플리케이션에서 Wi-Fi 설정 화면을 호출하려면 어떻게해야합니까?


일반적으로을 클릭하여 에뮬레이터에서 Wi-Fi 설정 화면을 얻습니다 Settings > Wireless controls > wifi settings. 내가 만든 Wi-Fi 버튼을 누르면 내 프로그램에서 Wi-Fi 설정 화면으로 바로 이동해야합니다. 연락처, 통화 로그는 Intent.setData (android.provider.contacts ...........)를 사용하여 처리 할 수 ​​있습니다. 안드로이드 프로그램에서 설정 하위 메뉴 / 메뉴를 여는 방법이 있습니까?
이에 대한 조언이나 샘플 코드를 알려주십시오.


다양한 설정 화면 (예 :)을 실행하는 데 사용할 수 android.provider.Settings있는 일련의 Intent작업을 살펴보십시오 ACTION_WIFI_SETTINGS.

편집 : 코딩 라인을 추가합니다.

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));


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));
}

컨텍스트로 의도를 호출해야합니다. 다음을 시도해보세요.

startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));

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>

플랫폼의 설정 활동을 호출하는 설정 항목이 표시됩니다.


다음은 Wi-Fi 설정 페이지를 여는 코드 스 니펫입니다.

 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);

버튼 클릭 Listner 클릭

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


내 앱에서 다음과 같이 구현했습니다.

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

참고 URL : https://stackoverflow.com/questions/2318310/how-can-i-call-wi-fi-settings-screen-from-my-application-using-android

반응형