투케이2K

510. (Android/Java) [android 12 / target 31] [유틸 파일] getPhoneAccount 로그인 사용자 계정 확인 : AccountManager 본문

Android

510. (Android/Java) [android 12 / target 31] [유틸 파일] getPhoneAccount 로그인 사용자 계정 확인 : AccountManager

투케이2K 2023. 3. 3. 13:30
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [VOID] getPhoneAccount : 휴대폰에 로그인 된 사용자 계정 확인
    // -----------------------------------------------------------------------------------------
    public static void getPhoneAccount(Context mContext) {

        /**
         * -------------------------------------------
         * [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 android:name="android.permission.READ_CONTACTS" />
         * -------------------------------------------
         * */


        // [출력 변수 선언]
        String LogData = "";
        List<HashMap<String, Object>> list = 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";

                // [사용자 로그인 정보 출력]
                AccountManager accountManager = (AccountManager) mContext.getSystemService(ACCOUNT_SERVICE);
                Account[] accounts = accountManager.getAccounts();
                //Account[] accounts = accountManager.getAccountsByType("com.google");
                list = new ArrayList<>();

                if (accounts != null && accounts.length>0){
                    for (int i=0; i<accounts.length; i++){

                        HashMap<String, Object> map = new HashMap<>();
                        map.put("name", accounts[i].name);
                        map.put("type", accounts[i].type);

                        list.add(map);
                    }
                }
            }

        }
        catch (Exception e){
            e.printStackTrace();
            LogData = e.getMessage();
        }


        // [로그 출력 실시]
        S_Log.ltd("================================================");
        S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 휴대폰에 로그인 된 사용자 계정 확인]");
        S_Log.cnt("-----------------------------------------");
        S_Log.cnt("[LOG :: "+String.valueOf(LogData)+"]");
        S_Log.cnt("-----------------------------------------");
        S_Log.cnt("[LIST :: "+String.valueOf(list)+"]");
        S_Log.lbd("================================================");
    }
 

[결과 출력]

 

D///===========//: ================================================
I/: [C_App >> getPhoneAccount :: 휴대폰에 로그인 된 사용자 계정 확인]
I/: -----------------------------------------
I/: [LOG :: Success Permission]
I/: -----------------------------------------
I/: [LIST :: [{name=test@gmail.com, type=com.google}]]
D///===========//: ================================================

 

반응형
Comments