Le problème
« Joue tel album » ne fonctionne pas dans la voiture.
L'arbre de navigation Android Auto est en place depuis la PR #36, mais la
recherche vocale ne l'est pas. Le lint MissingIntentFilterForMediaSearch est
donc rétrogradé en warning dans app/lint.xml, avec sa justification :
déclarer MEDIA_PLAY_FROM_SEARCH sans servir la recherche ouvrirait une porte
sur une pièce vide — l'utilisateur parle, et rien ne se passe.
Ce qui est décidé
Première version : la bibliothèque locale seulement. L'arbre de la #36 ne
contient qu'elle ; le catalogue serveur en a été écarté à dessein, parce qu'une
branche lente ou vide au volant est pire qu'une branche absente. La recherche
suit la même règle.
Sur le moteur de recherche existant, pas une seconde implémentation :
titre, artiste, album — puis on joue le meilleur résultat.
À vérifier avant de coder
D'après la documentation de Media3, et ce point n'a pas été vérifié dans le
code : la demande vocale arriverait par onAddMediaItems, avec un
requestMetadata.searchQuery renseigné et sans mediaId.
Or BrowseCallback.addMediaItems ne résout aujourd'hui que par identifiant : un
élément sans mediaId tomberait donc dans un chemin qui ne sait rien en faire.
C'est la première chose à confirmer.
MediaLibrarySession.Callback.onSearch / onGetSearchResult sert l'autre
moitié : la liste de résultats que la voiture affiche.
Une fois que ça marche
Remonter MissingIntentFilterForMediaSearch à son niveau d'origine dans
app/lint.xml et déclarer MEDIA_PLAY_FROM_SEARCH — la porte mène alors
quelque part.
Réserve
Rien de tout cela n'aura été vu dans une vraie voiture tant que la validation
sur appareil n'aura pas eu lieu (voir l'issue dédiée).
Le problème
« Joue tel album » ne fonctionne pas dans la voiture.
L'arbre de navigation Android Auto est en place depuis la PR #36, mais la
recherche vocale ne l'est pas. Le lint
MissingIntentFilterForMediaSearchestdonc rétrogradé en
warningdansapp/lint.xml, avec sa justification :déclarer
MEDIA_PLAY_FROM_SEARCHsans servir la recherche ouvrirait une portesur une pièce vide — l'utilisateur parle, et rien ne se passe.
Ce qui est décidé
Première version : la bibliothèque locale seulement. L'arbre de la #36 ne
contient qu'elle ; le catalogue serveur en a été écarté à dessein, parce qu'une
branche lente ou vide au volant est pire qu'une branche absente. La recherche
suit la même règle.
Sur le moteur de recherche existant, pas une seconde implémentation :
titre, artiste, album — puis on joue le meilleur résultat.
À vérifier avant de coder
D'après la documentation de Media3, et ce point n'a pas été vérifié dans le
code : la demande vocale arriverait par
onAddMediaItems, avec unrequestMetadata.searchQueryrenseigné et sansmediaId.Or
BrowseCallback.addMediaItemsne résout aujourd'hui que par identifiant : unélément sans
mediaIdtomberait donc dans un chemin qui ne sait rien en faire.C'est la première chose à confirmer.
MediaLibrarySession.Callback.onSearch/onGetSearchResultsert l'autremoitié : la liste de résultats que la voiture affiche.
Une fois que ça marche
Remonter
MissingIntentFilterForMediaSearchà son niveau d'origine dansapp/lint.xmlet déclarerMEDIA_PLAY_FROM_SEARCH— la porte mène alorsquelque part.
Réserve
Rien de tout cela n'aura été vu dans une vraie voiture tant que la validation
sur appareil n'aura pas eu lieu (voir l'issue dédiée).