짧은 글이므로 서두는 생략
앱에 헬스커넥트를 연동하기 위해 코드랩을 따라 진행하던 도중, 모든 코드를 작성하고, 권한을 요청하는 코드를 실행하였으나, 권한 요청 팝업이 호출되지 않았다...
디버깅 결과, 권한 요청 팝업이 호출되지 않았기에, 헬스커넥트 관련 권한을 허용할 수 없었고, 콜백으로 받아오는 허용된 권한 리스트가 항상 비어있는 문제가 발생하였다.
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) 를 의미하는 것으로 추측된다.
구글은 헬스커넥트 코드랩을 업데이트하라!