web-dev-qa-db-fra.com

Android - Ajout d'au moins une activité avec un filtre d'intention ACTION-VIEW après la mise à jour du SDK version 23

Je reçois l'info-bulle suivante dans AndroidManifest.xml :

L'application n'est pas indexable par Google Search; Pensez à ajouter au moins une activité avec un remplisseur d'intention ACTION-VIEW. Voir l'explication du problème pour plus de détails.

Ajoute des liens profonds pour insérer votre application dans l'index Google, pour obtenir des installations et du trafic vers votre application à partir de Google Search.

enter image description here

Quelqu'un peut-il expliquer pourquoi il en est ainsi?

230

De la documentation officielle:

Pour permettre à Google d'analyser le contenu de votre application et aux utilisateurs de la saisir à partir des résultats de recherche, vous devez ajouter des filtres d'intention pour les activités pertinentes dans le manifeste de votre application. Ces filtres d'intention permettent de créer des liens profonds avec le contenu de n'importe laquelle de vos activités. Par exemple, l'utilisateur peut cliquer sur un lien profond pour afficher une page au sein d'une application d'achat décrivant une offre de produit que l'utilisateur recherche.

En utilisant ce lien Activation des liens profonds pour le contenu de l'application , vous verrez comment l'utiliser.

Et en utilisant ceci test de votre implémentation d'indexation d'application comment le tester.

L'extrait de code XML suivant montre comment vous pouvez spécifier un filtre d'intention dans votre manifeste pour la liaison approfondie.

<activity
    Android:name="com.example.Android.GizmosActivity"
    Android:label="@string/title_gizmos" >
    <intent-filter Android:label="@string/filter_title_viewgizmos">
        <action Android:name="Android.intent.action.VIEW" />
        <category Android:name="Android.intent.category.DEFAULT" />
        <category Android:name="Android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
        <data Android:scheme="http"
              Android:Host="www.example.com"
              Android:pathPrefix="/gizmos" />
        <!-- note that the leading "/" is required for pathPrefix-->
        <!-- Accepts URIs that begin with "example://gizmos” -->
        <data Android:scheme="example"
              Android:Host="gizmos" />

    </intent-filter>
</activity>

Pour tester via Android Debug Bridge

$ adb Shell am start
        -W -a Android.intent.action.VIEW
        -d <URI> <PACKAGE>

$ adb Shell am start
        -W -a Android.intent.action.VIEW
        -d "example://gizmos" com.example.Android
187
Mk.Sl.

Vous pouvez supprimer l'avertissement en ajoutant le code ci-dessous dans <intent-filter> à l'intérieur de <activity>

<action Android:name="Android.intent.action.VIEW" />
135
Bibin Johny
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
package="com.example.app"
tools:ignore="GoogleAppIndexingWarning">

Vous pouvez supprimer l'avertissement en ajoutant xmlns:tools="http://schemas.Android.com/tools" à la balise <manifest> et tools:ignore="GoogleAppIndexingWarning" à la balise <application>.

101
Pat Lee

L'ajout de ce filtre d'intention à l'une des activités déclarées dans le manifeste de l'application a résolu ce problème.

<activity
    Android:name=".MyActivity"
    Android:screenOrientation="portrait"
    Android:label="@string/app_name">

    <intent-filter>

       <action Android:name="Android.intent.action.VIEW" />

    </intent-filter>

</activity>
11
Oladipo Olasemo