[Android] Android 14 헬스커넥트 연동시 권한 요청 팝업이 호출되지 않는 문제

이지훈·2024년 10월 21일
0
post-thumbnail

짧은 글이므로 서두는 생략

문제 발생

앱에 헬스커넥트를 연동하기 위해 코드랩을 따라 진행하던 도중, 모든 코드를 작성하고, 권한을 요청하는 코드를 실행하였으나, 권한 요청 팝업이 호출되지 않았다...

디버깅 결과, 권한 요청 팝업이 호출되지 않았기에, 헬스커넥트 관련 권한을 허용할 수 없었고, 콜백으로 받아오는 허용된 권한 리스트가 항상 비어있는 문제가 발생하였다.

문제 해결

Android 13에서 -> 14 이전 공식문서에 의하면
Android 14 기준 Manifest 내 하단에 다음과 같은 코드(<activity-alias ~ )를 추가해주면 권한 요청 팝업이 성공적으로 호출되는 것을 확인할 수 있다.

    <application>

        <!-- 권한을 요청하는 액티비티 -->
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.Together">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <!-- 기존에 추가해줬던 intent filter -->
            <intent-filter>
                <action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE" />
            </intent-filter>

        </activity>

        <!-- 추가적으로 작성 해줘야 하는 코드  -->
        <activity-alias
            android:name=".AndroidURationaleActivity"
            android:exported="true"
            android:targetActivity=".MainActivity" 
            android:permission="android.permission.START_VIEW_PERMISSION_USAGE">

            <intent-filter>
                <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" />
                <category android:name="android.intent.category.HEALTH_PERMISSIONS" />
            </intent-filter>

        </activity-alias>

    </application>

   <queries>
        <package android:name="com.google.android.apps.healthdata" />
    </queries>

코드랩에는 해당 내용이 누락되어있었다...(업데이트가 반영되어있지 않았다.)

참고로 .AndroidURationalActivity 에서 'AndroidU' 는 Android 14(Upside Down Cake) 를 의미하는 것으로 추측된다.

구글은 헬스커넥트 코드랩을 업데이트하라!

reference)
https://developer.android.com/health-and-fitness/guides/health-connect/develop/get-started?hl=ko#show-privacy-policy

https://developer.android.com/health-and-fitness/guides/health-connect/migrate/migrate-from-android-13-to-14?hl=ko

https://unlimitedcoding.tistory.com/83

profile
실력은 고통의 총합이다. Android Developer
post-custom-banner

0개의 댓글