투케이2K

701. (Android/Java) intent.setClassName : 안드로이드 테더링 설정 창 인텐트 이동 : Intent Android TetherSettings 본문

Android

701. (Android/Java) intent.setClassName : 안드로이드 테더링 설정 창 인텐트 이동 : Intent Android TetherSettings

투케이2K 2023. 12. 1. 19:55

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

        // ---------------------------------------------------------------
        // [로직 처리 실시]
        // ---------------------------------------------------------------
        try {

            /**
             * -----------------------------------------------
             * [기능 구현 설명]
             * -----------------------------------------------
             * 1. intent.setClassName 사용해 다이렉트 시스템 설정 창 이동 수행
             * -----------------------------------------------
             * 2. 참고 : 
             * 
             * - 특정 기기 (삼성, Lg, 샤오미) 에서 비정상 동작 및 기능 수행이 안될 수 있어
             *   설정 창 이동 후 정상적으로 액티비티 라이프 사이클 체크 및 대응 코드 준비 필요
             * -----------------------------------------------
             * */
            
            
            // [인텐트 이동 수행]
            Intent intent = new Intent();
            intent.setClassName("com.android.settings", "com.android.settings.TetherSettings");
            startActivity(intent);
        }
        catch (Exception e){
            e.printStackTrace();
        }


        // -----------------------------------------------
        // [해당 설정창으로 이동 못했을 경우 대응 처리] : [액티비티 백그라운드 상태 체크]
        // -----------------------------------------------
        // [전역 변수 선언 필요] : boolean isActivityForeground = false;
        // -----------------------------------------------
        // [onResume 에서 플래그값 true / onPause 플래그값 false]
        // -----------------------------------------------
        new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
            @Override
            public void run() {

                if (isActivityForeground == true){ // [정상 이동하지 못한 경우]
                    S_Log._E_("[테더링] 설정창 이동 [실패]", null);

                    Toast.makeText(getApplicationContext(), "설정창 이동에 실패했습니다.", Toast.LENGTH_SHORT).show();
                }
                else {
                    S_Log._W_("[테더링] 설정창 이동 [성공]", null);
                }
                
            }
        }, 1000);
        // ---------------------------------------------------------------
 

[결과 출력]

 

W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro$2.run(A_Intro.java:348)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2023-11-30 08:41:27 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: [테더링] 설정창 이동 [성공]]
W///===========//: ================================================

 

반응형
Comments