투케이2K

488. (kotlin/코틀린) [유틸 파일] isMultiSimSupported : 듀얼 유심 장착 지원 여부 확인 본문

Kotlin

488. (kotlin/코틀린) [유틸 파일] isMultiSimSupported : 듀얼 유심 장착 지원 여부 확인

투케이2K 2024. 4. 23. 20:09

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [isMultiSimSupported] : 듀얼 유심 장착 지원 여부 확인
        // -----------------------------------------------------------------------------------------
        @RequiresApi(Build.VERSION_CODES.Q)
        @RequiresPermission(value = "android.permission.READ_PHONE_STATE")
        fun isMultiSimSupported(mContext: Context): Boolean {

            /**
             * // -----------------------------------------
             * [isMultiSimSupported 메소드 설명]
             * // -----------------------------------------
             * 1. 듀얼 유심 장착 지원 여부 확인
             * // -----------------------------------------
             * 2. 호출 방법 :
             *
             * if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
             *
             *      C_StateCheck.isMultiSimSupported(A_Intro@this)
             * }
             * // -----------------------------------------
             * 3. 리턴 데이터 :
             *
             * 듀얼 유심 장착 지원 기기인 경우 = true / 아니면 false
             * // -----------------------------------------
             * 4. 필요 퍼미션 :
             *
             * <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
             * // -----------------------------------------
             * 5. 추가 설명 :
             *
             * 네트워크에 등록하기 위해 동시에 여러 SIM 카드 사용(예: 듀얼 대기 또는 듀얼 액티브)을 장치 및 이동통신사에서 지원하는지 여부를 반환합니다
             * // -----------------------------------------
             */


            // [리턴 변수 선언 실시]
            var returnData = false


            // [로직 처리 실시]
            try {
                val telephonyManager = mContext.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager

                // [하드웨어 기기가 지원하지 않거나, 이동 통신사에서 제한하는 경우]
                returnData = if (telephonyManager.isMultiSimSupported == TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_HARDWARE
                        || telephonyManager.isMultiSimSupported == TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_CARRIER) {

                        // [리턴 값 변경]
                        false

                    } else {

                        // [리턴 값 변경]
                        true
                    }

            } catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            // ===============================================================
            S_Log._D_("듀얼 유심 장착 지원 여부 확인", arrayOf(
                "RETURN :: $returnData"
            ))
            // ===============================================================
            // */


            // [리턴 반환 실시]
            return returnData
        }
 

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.kotlinproject.C_StateCheck.isMultiSimSupported]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-04-23 09:45:50 화요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 듀얼 유심 장착 지원 여부 확인]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: true]
D///===========//: ================================================

 

반응형
Comments