안드로이드 11버전 이슈사항

srpark·2021년 3월 19일
0

[1] window.decorView의 systemUiVisibility Deprecated

  • 변경전
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
  • 변경후
window.insetsController?.setSystemBarsAppearance(WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS, WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS)

[2] Toast를 Custom하여 사용할 수 없습니다.

  • setView가 Deprecated

  • getView() 메서드가 null을 반환합니다.

    해결법 : Material의 snackBar를 custom 이용

  • 다음 메서드의 반환 값은 실제 값을 반영하지 않으므로 앱에서 반환 값을 사용해서는 안 됩니다

    getHorizontalMargin()
    getVerticalMargin()
    getGravity()
    getXOffset()
    getYOffset()

  • 토스트 메시지 콜백

    토스트 메시지 알림을 받으려면 addCallback() 메서드를 사용합니다.


[3] onActivityResult Deprecated

  • 변경 사용법
private val resultActivity = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
        ...
}
val intent = Intent(this, TestActivity::class.java)
resultActivity.launch(intent)

[4] resolveActivity 메서드가 항상 null

  • intent.resolveActivity(packageManager)의 값은 항상 null이 나옵니다.

    해결법 : Intent의 ACTION_VIEW, ACTION_SENDTO 등 사용시 정상값을 얻으려면 <queries> 를 AndroidManifest.xml에 추가하여 명시적으로 설정해야합니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.royallounge">
    <queries>
        <intent>
            <action android:name="android.intent.action.SENDTO" />
            <data android:scheme="*" />
        </intent>
    </queries>
  <application
      ...
  </application>
</manifest>

참조 : https://developer.android.com/about/versions/11/privacy/package-visibility?hl=ko

profile
Android_Developer

0개의 댓글