Android 11 (Api 30)에서 Android Bubbles 알림을 구현하는 방법

일리아 가즈 만

Android Bubbles 알림 API 를 구현하려고하는데 작동하지 않고 일반 알림으로 표시됩니다. 에뮬레이터 API 30 (Android 11)에서 테스트 중입니다. 장치에서 작업 하는 사람 예제가 있고 대화 알림 지침을 따르고 있습니다.

  • 알림은 MessagingStyle을 사용합니다.
  • (앱이 Android 11 이상을 대상으로하는 경우에만 해당) 알림은 유효 수명이 긴 동적 또는 캐시 된 공유 바로 가기와 연결됩니다. 알림은 setShortcutId () 또는 setShortcutInfo ()를 호출하여이 연결을 설정할 수 있습니다. 앱이 Android 10 이하를 대상으로하는 경우 대체 옵션 섹션에 설명 된대로 알림을 바로 가기와 연결할 필요가 없습니다.
  • 사용자가 게시 시점에 알림 채널 설정을 통해 대화 섹션에서 대화를 강등하지 않았습니다.

내가 무엇을 놓쳤는 지 말해주세요.

또한 Bubbles 디자인에 대한 몇 가지 선택적 질문이 있습니다.

  • 앱의 어느 지점에서 바로 가기를 만들어야하며 언제 업데이트해야합니까?
  • Person 객체는 어떻게 캐시되어야합니까?

이것이 내가 지금까지 얻은 것입니다

    Recipient recipient = ...; // Sender data
    Message message = ...;     // Message data

    Intent intent = new Intent(context, ChatActivity.class);
    intent.putExtra(ChatActivity.CONVERSATION_ID, message.conversationId);

    PendingIntent bubbleIntent =
            PendingIntent.getActivity(context, 0, intent, 0);

    IconCompat icon = loadIcon(recipient);
    Person person = loadPerson(recipient, icon);

    NotificationCompat.MessagingStyle style = getMessagingStyle(person);

    createOrVerifyChannel();

    Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID)
            .setContentTitle(getNewMessagesCount(message) + " new messages with " + person.getName())
            .setCategory(Notification.CATEGORY_MESSAGE)
            .setContentText(message.text)
            .setBubbleMetadata(
                    new NotificationCompat.BubbleMetadata.Builder()
                            .setDesiredHeight(600)
                            .setIntent(bubbleIntent)
                            .setAutoExpandBubble(true)
                            .setSuppressNotification(true)
                            .setIcon(icon)
                            .build()
            )
            .addPerson(person)
            .setSmallIcon(R.mipmap.ic_launcher_round)
            .setWhen(message.date)
            .setStyle(style)
            .setShortcutInfo(
                    new ShortcutInfoCompat.Builder(context, message.conversationId + "")
                            .setActivity(new ComponentName(context, ChatActivity.class))
                            .setCategories(new HashSet<>(Collections.singletonList(Notification.CATEGORY_MESSAGE)))
                            .setIcon(icon)
                            .setPerson(person)
                            .setRank(0)
                            .setShortLabel(person.getName())
                            .setIntent(intent)
                            .build()
            )
            .build();


    NotificationManagerCompat.from(context).notify(message.id + "," + message.type,
            message.id, notification);

명백한

 <activity
        android:name=".screens.chat.ChatActivity"
        android:allowEmbedded="true"
        android:resizeableActivity="true"
        tools:targetApi="n" />

Gradle

targetSDKVersion 30
implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'
일리아 가즈 만

내가 놓친 것이 한 가지가 추가되었다 .setLongLived(true)을 위해 ShortcutInfoCompat. 문제를 해결합니다.

ShortcutInfo한 번에 최대 5 개까지 가질 수 있기 때문에 앱 수준 에서 관리하는 것이 가장 좋다는 것을 배웠습니다 . 따라서 메모리에 캐싱하는 데 아무런 해가 없으며 Person개체도 포함됩니다.

또한에 대한 LocusId추가해야 합니다 NotificationCompat.이 ID는 바로 가기, 알림 및보기간에 공유됩니다. 뷰에 추가하려면 ContentCaptureManager에 설명 된대로 추가 작업을해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android 11 (Android R 또는 Android API 레벨 30)에서 windowinsetsanimation을 사용하는 방법

분류에서Dev

Android API 레벨 19에 알림을 표시하는 방법

분류에서Dev

Android에서 여러 알림을 설정하는 방법

분류에서Dev

Android에서 여러 푸시 알림을 처리하는 방법

분류에서Dev

Android에서 특정 수의 알림을 표시하는 방법

분류에서Dev

Android에서 알림을 삭제하는 방법

분류에서Dev

Android에서 수신 된 알림을 계산하는 방법

분류에서Dev

Android에서 사용자 지정 알림을 만드는 방법

분류에서Dev

Android에서 알림을 숨기는 방법

분류에서Dev

Android에서 여러 알림을받는 방법

분류에서Dev

Android에서 여러 로컬 알림을 만드는 방법

분류에서Dev

Android 알림에 버튼을 추가하는 방법

분류에서Dev

Android에서 알림을 저장하기 위해 알림 활동을 만드는 방법

분류에서Dev

Android 11 (SDK 30)을 실행하는 앱에서 충돌 문제를 해결하는 방법

분류에서Dev

Android의 Gridview에서 검색 기능을 구현하는 방법

분류에서Dev

Android에서 블록을 구현하는 방법

분류에서Dev

Android에서 시간을 구현하는 방법

분류에서Dev

Android에서 AlarmManager를 사용하여 여러 알림을 설정하는 방법

분류에서Dev

Android에서 알림 클릭 의도의 새 데이터로 현재 활동을 다시 시작하는 방법

분류에서Dev

iOS10에서 알림을 구성하는 방법 (GCM ID를 사용하는 Android와 동일)?

분류에서Dev

Android에서 선택한 날짜 전날 알림을 설정하는 방법

분류에서Dev

Android에서 알림 활동을 위해 절반 화면을 만드는 방법

분류에서Dev

Android의 알림에서 앱을 여는 방법은 무엇입니까?

분류에서Dev

Android에서 알림 표시 줄을 만드는 방법은 무엇입니까?

분류에서Dev

웹 사이트에서 Android로 Firebase 알림을 보내는 방법

분류에서Dev

Android에서 애플리케이션이 닫힐 때 알림을받는 방법

분류에서Dev

Android drupal 서버를 사용하여 푸시 알림을받는 방법

분류에서Dev

Android Studio 디버거가 API 29 Android 10 및 API 30 Android 11을 실행하는 기기의 Retrofit 콜백 중단 점에서 멈추지 않습니다.

분류에서Dev

Android 푸시 알림에 GCM 및 Urban Airship을 모두 사용하는 방법

Related 관련 기사

  1. 1

    Android 11 (Android R 또는 Android API 레벨 30)에서 windowinsetsanimation을 사용하는 방법

  2. 2

    Android API 레벨 19에 알림을 표시하는 방법

  3. 3

    Android에서 여러 알림을 설정하는 방법

  4. 4

    Android에서 여러 푸시 알림을 처리하는 방법

  5. 5

    Android에서 특정 수의 알림을 표시하는 방법

  6. 6

    Android에서 알림을 삭제하는 방법

  7. 7

    Android에서 수신 된 알림을 계산하는 방법

  8. 8

    Android에서 사용자 지정 알림을 만드는 방법

  9. 9

    Android에서 알림을 숨기는 방법

  10. 10

    Android에서 여러 알림을받는 방법

  11. 11

    Android에서 여러 로컬 알림을 만드는 방법

  12. 12

    Android 알림에 버튼을 추가하는 방법

  13. 13

    Android에서 알림을 저장하기 위해 알림 활동을 만드는 방법

  14. 14

    Android 11 (SDK 30)을 실행하는 앱에서 충돌 문제를 해결하는 방법

  15. 15

    Android의 Gridview에서 검색 기능을 구현하는 방법

  16. 16

    Android에서 블록을 구현하는 방법

  17. 17

    Android에서 시간을 구현하는 방법

  18. 18

    Android에서 AlarmManager를 사용하여 여러 알림을 설정하는 방법

  19. 19

    Android에서 알림 클릭 의도의 새 데이터로 현재 활동을 다시 시작하는 방법

  20. 20

    iOS10에서 알림을 구성하는 방법 (GCM ID를 사용하는 Android와 동일)?

  21. 21

    Android에서 선택한 날짜 전날 알림을 설정하는 방법

  22. 22

    Android에서 알림 활동을 위해 절반 화면을 만드는 방법

  23. 23

    Android의 알림에서 앱을 여는 방법은 무엇입니까?

  24. 24

    Android에서 알림 표시 줄을 만드는 방법은 무엇입니까?

  25. 25

    웹 사이트에서 Android로 Firebase 알림을 보내는 방법

  26. 26

    Android에서 애플리케이션이 닫힐 때 알림을받는 방법

  27. 27

    Android drupal 서버를 사용하여 푸시 알림을받는 방법

  28. 28

    Android Studio 디버거가 API 29 Android 10 및 API 30 Android 11을 실행하는 기기의 Retrofit 콜백 중단 점에서 멈추지 않습니다.

  29. 29

    Android 푸시 알림에 GCM 및 Urban Airship을 모두 사용하는 방법

뜨겁다태그

보관