투케이2K

613. (Android/Java) [Android 13] [유틸 파일] save_Phone_Contract : 휴대폰에 연락처 저장 실시 - WRITE_CONTACTS 본문

Android

613. (Android/Java) [Android 13] [유틸 파일] save_Phone_Contract : 휴대폰에 연락처 저장 실시 - WRITE_CONTACTS

투케이2K 2023. 7. 31. 08:18

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] save_Phone_Contract : 휴대폰에 연락처 저장 실시
    // -----------------------------------------------------------------------------------------
    public static boolean save_Phone_Contract(Context mContext, String name, String job, String email, String phoneNumber) {

        /**
         * // -----------------------------------------
         * [save_Phone_Contract 메소드 설명]
         * // -----------------------------------------
         * 1. 휴대폰에 연락처 저장 실시
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         * C_App.save_Phone_Contract(A_Intro.this, "투케이", "대리", "twok@com", "010-1234-5678");
         *
         * // -----------------------------------------
         * 3. 필요 퍼미션 : 사전 : WRITE_CONTACTS 권한을 사용자로부터 획득 필요
         *
         * <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
         * <uses-permission android:name="android.permission.READ_CONTACTS"/>
         * // -----------------------------------------
         * */


        // [리턴 변수 선언]
        boolean returnData = false;

        boolean errorFlag = false;
        String m_log = "";


        try {

            // [사전 퍼미션 권한 부여 상태 체크]
            if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED
                    && ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_CONTACTS) == PackageManager.PERMISSION_GRANTED){
            }
            else {
                errorFlag = true;
                m_log = "[ERROR] : READ_CONTACTS / WRITE_CONTACTS : Permission Not Granted";
            }


            // [필수 파라미터 값 널 체크]
            if (C_Util.stringNotNull(name) == true && C_Util.stringNotNull(phoneNumber) == true){
            }
            else {
                errorFlag = true;
                m_log = "[ERROR] : name / phoneNumber : Data Is Null";
            }


            // [로직 수행 실시]
            if (errorFlag == false){

                Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
                intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);

                intent.putExtra(ContactsContract.Intents.Insert.NAME, String.valueOf(name)); // TODO 이름

                intent.putExtra(ContactsContract.Intents.Insert.PHONE, String.valueOf(phoneNumber)); // TODO 폰번호
                intent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);

                if (C_Util.stringNotNull(job) == true){
                    intent.putExtra(ContactsContract.Intents.Insert.JOB_TITLE, String.valueOf(job)); // TODO 직함
                }

                if (C_Util.stringNotNull(email) == true){
                    intent.putExtra(ContactsContract.Intents.Insert.EMAIL, String.valueOf(email)); // TODO 이메일
                    intent.putExtra(ContactsContract.Intents.Insert.EMAIL_TYPE, ContactsContract.CommonDataKinds.Email.TYPE_OTHER);
                }

                mContext.startActivity(intent);

                m_log = "[SUCCESS] : 휴대폰 번호 저장";
                returnData = true;

            }

        } catch (Exception e) {
            S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e);
            m_log = "[EXCEPTION] : " + String.valueOf(e.getMessage());
        }


        // [로그 출력 실시]
        //*
        // ===============================================================
        S_Log._D_("휴대폰에 연락처 저장 실시", new String[]{
                "INPUT [name] :: " + String.valueOf(name),
                "INPUT [job] :: " + String.valueOf(job),
                "INPUT [email] :: " + String.valueOf(email),
                "INPUT [phoneNumber] :: " + String.valueOf(phoneNumber),
                "M_LOG :: " + String.valueOf(m_log),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


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

 

반응형
Comments