Notice
Recent Posts
Recent Comments
Link
투케이2K
221. (kotlin/코틀린) [android 12 / target 31] [유틸 파일] getPhoneAccount 로그인 사용자 계정 확인 : AccountManager 본문
Kotlin
221. (kotlin/코틀린) [android 12 / target 31] [유틸 파일] getPhoneAccount 로그인 사용자 계정 확인 : AccountManager
투케이2K 2023. 3. 3. 13:33[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// ----------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [VOID] getPhoneAccount : 휴대폰에 로그인 된 사용자 계정 확인
// ----------------------------------------------------------------------------------
fun getPhoneAccount(mContext: Context) {
/**
* -------------------------------------------
* [getPhoneAccount 메소드 설명]
* -------------------------------------------
* 1. getPhoneAccount 를 사용해 휴대폰에 로그인 된 사용자 계정 확인
* -------------------------------------------
* 2. 호출 방식 :
*
* C_App.getPhoneAccount(A_Intro@this)
*
* -------------------------------------------
* 3. 출력 데이터 :
*
* [{name=test@gmail.com, type=com.google}]
* -------------------------------------------
* 4. 필요 퍼미션 : [사전에 사용자로부터 퍼미션 인증을 모두 받아야 합니다]
*
* <uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
* <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
* -------------------------------------------
*/
// [출력 변수 선언]
var LogData = ""
var list: MutableList<HashMap<String?, Any?>?>? = null
// [로직 처리 실시]
try {
// [퍼미션 권한 체크 실시]
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(mContext, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
// [퍼미션이 부여되어있지 않은 경우 종료]
LogData = "Permission not granted"
}
else {
// [리턴 변수에 삽입]
LogData = "Success Permission"
// [사용자 로그인 정보 출력]
val accountManager = mContext.getSystemService(Context.ACCOUNT_SERVICE) as AccountManager
val accounts = accountManager.accounts
list = ArrayList()
if (accounts != null && accounts.size > 0) {
for (i in accounts.indices) {
val map = HashMap<String?, Any?>()
map["name"] = accounts[i].name
map["type"] = accounts[i].type
list.add(map)
}
}
}
} catch (e: Exception) {
e.printStackTrace()
LogData = e.message.toString()
}
// [로그 출력 실시]
S_Log.ltd("================================================")
S_Log.cnt("[" + ACTIVITY_NAME + " >> " + C_Util.getNowMethod(1) + " :: 휴대폰에 로그인 된 사용자 계정 확인]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[LOG :: $LogData]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[LIST :: " + list.toString() + "]")
S_Log.lbd("================================================")
}
[결과 출력]
D///===========//: ================================================
I/: [C_App >> getPhoneAccount :: 휴대폰에 로그인 된 사용자 계정 확인]
I/: -----------------------------------------
I/: [LOG :: Success Permission]
I/: -----------------------------------------
I/: [LIST :: [{name=test@gmail.com, type=com.google}]]
D///===========//: ================================================
반응형
'Kotlin' 카테고리의 다른 글
Comments