Notice
Recent Posts
Recent Comments
Link
투케이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;
}
반응형
'Android' 카테고리의 다른 글
Comments