NotificationCompat.setStyle() ne peut pas obtenir de Notification.MediaStyle
J'ai trouvé que le MediaStyle setStyle ne fonctionne pas quand je suis en utilisant
NotificationCompat.builder(this)
à procéder à une notification.
Je veux dire, Lors de l'utilisation de ce sur NotificationCompat.Builder(this)
:
.setStyle(new Notification.MediaStyle()
.setMediaSession(mySession))
Dire qu'il veut obtenir NotificationCompat.style
au lieu de Notification.MediaStyle
.
Pouvez-vous m'aider à résoudre ce problème?
Est-il un remplacement pour le NotificationCompat?
Grâce.
Veuillez utiliser la fonction "android.de soutien.v4.médias.app.NotificationCompat.MediaStyle" à la place. Plus de détails sont sur le bon article: medium.com/google-developers/...
OriginalL'auteur user3184899 | 2014-10-19
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de " NotificationCompat.MediaStyle` en v4 paquet, cependant, il n'existe pas en v7 paquet. Veillez à importer:
import android.de soutien.v7.app.NotificationCompat;
au lieu de la v4 paquet. Il fonctionne pour moi comme des v22.2.0 de la appcompat de la bibliothèque.
De la version 26.0.0, la v7 paquet est obsolète. Cependant, toutes les fonctionnalités ont été ajoutées pour la v4! Yay!!!
Source
mon mauvais. Il a déménagé à
android.support.v4.media.app.NotificationCompat.MediaStyle
.OriginalL'auteur Guillermo Orellana Ruiz
Solution temporaire: Comme de 9/11/2017, On peut utiliser la classe entièrement qualifié comme un ouvrage autour de. Testé à l'aide d'Android 3.0 Beta 5 Preview, avec l'API 26.0.1 construire des outils
OriginalL'auteur Andrew Lam
Guillermo est correct, le MediaStyle n'existe que dans la v7 support package, mais malheureusement, il peut encore s'avérer problématique pour vous lors de la correction de votre colis, car cela pourrait seulement une partie de votre problème.
D'abord le contexte...
Chaque appel à configurer le NotificationBuilder retourne l'instance de générateur, ce qui permet au réalisateur de la chaîne d'appels de configuration comme suit:
C'est un très normal & pratique du motif, le seul problème, c'est que le Constructeur instance retournée est de type android.de soutien.v4.app.NotificationCompat.Builder, & pas le android.de soutien.v7.app.NotificationCompat.Générateur de rapports qui vous attendent.
Donc la solution est d'une simplicité trompeuse... juste explicitement gardez à l'aide de votre v7 instance de Générateur lors de la prise de ces appels 🙂
heureux, il a aidé 🙂
OriginalL'auteur Marc Tatham
Mise à jour
Ce problème est résolu maintenant, si vous avez le lien dans Android Support Library révision 22.2.1 (juillet 2015):
NotificationCompat.MediaStyle
classeÂgées solution de contournement
Voici ma solution de contournement pour "Il n'y a pas de NotificationCompat.MediaStyle dans la bibliothèque de prise en charge".
Il évite de dupliquer la logique de l'application et le rend facile à la solution de contournement si/quand NotificationCompat prend en charge
MediaStyle
.But: Cela facilite l'utilisation de la
MediaStyle
de l'API de 21+ (offrant compact et élargi de notification de mises en page, avec des boutons), ou une quelconque notification de mise en page sur les anciennes versions d'Android (juste la mise en page, avec des boutons).Remarque: Si votre but est de mettre les boutons sur l'écran de verrouillage sur plusieurs versions d'Android, vous pouvez utiliser cette approche pour mettre en œuvre l'écran de verrouillage des notifications pour les API 21+, et également de mettre en œuvre un widget écran de verrouillage pour les anciennes Api.
Comment: tout d'Abord, créez une nouvelle notification générateur de package de compatibilité, à commencer par une interface d'alterner des implémentations sous-jacentes. Crèche de
NotificationCompat.Builder
, dépouillé vers le bas pour les fonctionnalités nécessaires:Seconde, faire une mise en œuvre construite sur
NotificationCompat.Builder
:Tiers, faire une mise en œuvre construite sur
Notification.Builder
:Quatrième, ajoutez une usine méthode pour instancier le droit constructeur:
Android < 21 n'a pas de notifications sur l'écran de verrouillage, ni un MediaStyle pour la zone de notification. Donc sur Android < 21 cette
setMediaStyleActionsInCompactView()
méthode ne fait rien, gracieusement, alors qu'il n'ajouter le compact médias boutons de style sur Android 21. Les appels àbuilder.addAction()
va encore ajouter des boutons à la notification dans toutes les versions d'Android qui le prennent en charge.Gotcha. Mais...je sais que c'est possible d'obtenir des boutons de médias sur <api21, Android Apollo musique construit dans le lecteur a entre eux. Quelqu'un sait comment? Merci!!!
il dépend seulement de ce que vous me demandez. Avant d'API 21 vous pouvez toujours appeler
addAction()
d'ajouter jusqu'à 3 boutons d'action, et vous pouvez télécharger Android Icônes de Conception pour obtenir les images de bouton pour mettre en pause, play, stop, etc. API 21 introduitMediaStyle
qui prend en charge jusqu'à 5 boutons dans la vue large; 3 dans la vue compacte. Il est également possible de définir une mise en page personnalisée. Si vous êtes en comparant avec Cyanogen intégré dans le lecteur de musique Apollon, ne Cyanogène d'offrir des Api pour qui?C'est la source si quelqu'un est à la recherche github.com/1fish2/BBQTimer/tree/master/BBQ%20Timer/src/main/...
OriginalL'auteur Jerry101
Il ne semble pas être un rétroportage de
MediaStyle
dans l'Android paquet de Soutien en ce moment.Finalement, une fois le Android 5.0 code source est disponible, quelqu'un peut être en mesure de concevoir une indépendante backport. Ou, peut-être le Soutien Android package ajouter un rétroportage dans l'avenir.
Mais, à l'heure actuelle, AFAICT, vous ne pouvez pas créer un
MediaStyle
pour une utilisation avecNotificationCompat
.Vous devez passer à l'utilisation de
Notification.Builder
, pasNotificationCompat.Builder
, siBuild.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP
.Voir code.google.com/p/android-developer-preview/issues/...
OriginalL'auteur CommonsWare