Nemůže získat správné aplikace pro Android O mediastyle oznámení

0

Otázka

Jsem z možnosti s Mediastyle Oznámení.

Zde je kód jako součást MediaBrowserServiceCompat :

    private void showPlayingNotification() {

    Context context = MyApplication.getInstance().getApplicationContext();

    Intent resumeIntent = new Intent(context, MainActivity.class);
    PendingIntent pendingResumeIntent = PendingIntent.getBroadcast(context, 12345, resumeIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    Notification.Builder mBuilder = new Notification.Builder(this, NOTIFICATION_CHANNEL_ID);

    mBuilder.addAction(R.drawable.ic_back30, "rw30", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_REWIND))
            .addAction(R.drawable.ic_player_pause, "Pause", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_PLAY_PAUSE))
            .addAction(R.drawable.ic_forward30, "ff30", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_FAST_FORWARD))
            .addAction(android.R.drawable.ic_menu_close_clear_cancel, "Stop", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_STOP))
    
            .setStyle(new Notification.MediaStyle()
                    .setShowActionsInCompactView(0,1,2)
                    .setMediaSession((MediaSession.Token) mMediaSessionCompat.getSessionToken().getToken()))

            .setSmallIcon(R.drawable.ic_rss_icon)
            .setLargeIcon(mMediaSessionCompat.getController().getMetadata().getDescription().getIconBitmap())
            .setContentIntent(pendingResumeIntent);
    
    startForeground(12345, mBuilder.build());
}

a tady je to, co jsem dostal : oznámení s mediasession

Mám progress bar v plné velikosti oznámení, ale tam jsou 2 problémy :

  • Nechápu ikonu aplikace v horní liště
  • Nechápu android O oznámení

Takže, když jsem mimo komentář

.setMediaSession((MediaSession.Token) mMediaSessionCompat.getSessionToken().getToken()))

Zde je to, co jsem dostal : oznámení bez médií zasedání

Teď jsem si ikonu aplikace v horní liště, ale 2 další problémy zůstávají :

  • Nechápu, pokrok bar v plné velikosti oznámení
  • Bez ohledu na to, co dělám .setColorized() nebo .setColor(), pozadí zůstává bílé.

Dělám to na Samsung A52, Android 11. Zde je gradle souboru :

apply plugin: 'com.android.application' 
android {
        compileSdkVersion 30

        defaultConfig {
                applicationId "com.podplay"
                minSdkVersion 30
                targetSdkVersion 30
                versionCode 1
                versionName "1.0"

                testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
            }

        buildTypes {
                release {
                    minifyEnabled false
                    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
                }
            }
        }

poslední :

  • žádný rozdíl, mám-li použít Oznámení nebo NotificationCompat
  • žádné dodatečné nastavení v stavitel se zdá, aby se rozdíl (priorita, kategorie, ...)
  • Snažil jsem se " to " jako Kontext (místo aplikace), ale marně.

Díky za jakékoliv vodítko ...

android java notifications
2021-11-22 21:27:59
1

Nejlepší odpověď

0

To je to, jak api funguje, Musíte si vybrat buď mezi dvěma nebo vytvořit vlastní mediastyle, jako je tento

Notification noti = new Notification.Builder()
     .setSmallIcon(R.drawable.ic_stat_player)
     .setLargeIcon(albumArtBitmap))
     .setCustomContentView(contentView);
     .setStyle(new Notification.DecoratedMediaCustomViewStyle()
          .setMediaSession(mySession))
     .build();
 

Podívejte se na: https://developer.android.com/reference/android/app/Notification.DecoratedMediaCustomViewStyle

2021-11-23 12:23:53

Díky za odpověď, ale jak DecoratedMediaCustomViewStyle je podtřídou MediaStyle, nechápu ikonu aplikace v horní liště, což je problém ...
MF de Préval

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................