web-dev-qa-db-fra.com

Quel est le nouveau code généré "Cela a été généré automatiquement pour implémenter l'API d'indexation d'application".

Contexte

Je viens de créer un nouveau POC aujourd'hui (sur les transitions d'activité, mais ce n'est pas le sujet), et j'ai remarqué une nouvelle ligne en cours d'écriture dans la méthode "onCreate" de l'activité principale:

    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();

Et plus:

@Override
    public void onStart() {
        super.onStart();

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        mClient.connect();
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "SinglePhotoViewer Page", // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity's content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
                Uri.parse("http://Host/path"),
                // TODO: Make sure this auto-generated app deep link URI is correct.
                Uri.parse("Android-app://com.example.user.transitionstest/http/Host/path")
        );
        AppIndex.AppIndexApi.start(mClient, viewAction);
    }

    @Override
    public void onStop() {
        super.onStop();

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "SinglePhotoViewer Page", // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity's content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
                Uri.parse("http://Host/path"),
                // TODO: Make sure this auto-generated app deep link URI is correct.
                Uri.parse("Android-app://com.example.user.transitionstest/http/Host/path")
        );
        AppIndex.AppIndexApi.end(mClient, viewAction);
        mClient.disconnect();
    }

et ceci a été ajouté au manifeste:

<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
        App Indexing.  See https://g.co/AppIndexing/AndroidStudio for more information. -->
        <meta-data
            Android:name="com.google.Android.gms.version"
            Android:value="@integer/google_play_services_version"/>

Le problème

En regardant le site Web qui a été écrit, je ne comprends toujours pas ce que c'est.

Je suppose que this est comment l’utiliser, mais je ne comprends pas comment tout cela fonctionne.

Aussi, chose étrange, c’est que tout nouveau projet que je crée ne montre pas cette nouvelle ligne de code.

Questions

  1. Qu'est-ce que c'est? Qu'est ce que ça fait?
  2. Que devrais-je en faire?
  3. Existe-t-il des personnalisations pour cela? Des recommandations? 
  4. Dans quels cas cette ligne de code est-elle générée? Je n'ai pas remarqué comment et quand il est créé ...

D'après ce que j'ai lu et vu sur le site Web, je suppose que cela n'est utilisé que pour les applications pouvant effectuer une recherche, afin que Google puisse afficher à l'utilisateur les requêtes précédentes et des résultats plus rapides. 

18
android developer

Vous avez raison: ce code est créé automatiquement par Android Studio pour faciliter la mise en œuvre de l'API d'indexation des applications.

Cependant, il n'est pas créé en ajoutant simplement une nouvelle activité à votre application. Vous devez explicitement demander à Android Studio de créer ce code. Vous devrez alors le mettre à jour avec les détails de votre activité: type d'action, titre, lien profond, page Web correspondante (le cas échéant).

Pour que ce code soit généré pour vous, vous pouvez utiliser la liste d'intention contextuelle par Alt + Entrée, sélectionnez «Insérer le code API d'indexation d'application»:

 enter image description here

Ou vous pouvez utiliser liste de génération de code contextuel} _ par Alt + Insérer, sélectionnez «Code API d'indexation d'application»:

 enter image description here

Voici la documentation pertinente de Google Developers:

https://developers.google.com/app-indexing/Android/test#link-creation

Il n'y a en réalité que quatre éléments à modifier:

// What type of action is this? (TYPE_VIEW, TYPE_LISTEN, TYPE_WATCH, etc...)    
Action.TYPE_VIEW

// Title of your page, just like the web
"SinglePhotoViewer Page"

// The web url of corresponding content, if exists, otherwise leave blank, ""
Uri.parse("http://Host/path") 

// Your deep link starting with "Android-app://"
Uri.parse("Android-app://com.example.user.transitionstest/http/Host/path")

Il est recommandé de choisir un titre décrivant le plus précisément le contenu de cet emplacement de lien profond dans votre application. Tout comme vous le feriez dans les balises <TITLE></TITLE> dans un en-tête de page Web HTML.

Une fois mise en œuvre, toute activité visualisée par votre utilisateur final signalera ce lien profond au système d'exploitation Android. Il sera ensuite disponible dans les résultats de suggestion de saisie semi-automatique lorsqu'un utilisateur saisit une requête dans la zone de recherche rapide de Google. L'icône de votre application et le titre que vous avez fourni seront affichés dans les résultats de la suggestion si la requête de l'utilisateur correspond à votre titre par mot-clé.

Voici un exemple de ce à quoi cela ressemblerait, du point de vue de l'utilisateur final, dans l'application Live Nation, en supposant qu'il ait déjà visité les deux pages affichées dans les résultats de Suggestion à gauche:

 enter image description here

En outre, en mettant en œuvre l'API d'indexation des applications, vous obtiendrez un meilleur classement dans les résultats de recherche, comme indiqué dans le lien que vous avez fourni dans votre question initiale:

Cela active les requêtes auto-complétées pour les utilisateurs de votre application, ainsi que des résultats de recherche plus riches, une qualité de recherche améliorée et classement amélioré signaux.

Enfin, vous pouvez être intéressé par ce laboratoire de code en tant que ressource supplémentaire:

https://codelabs.developers.google.com/codelabs/app-indexing/#0

16
pferg

Si cela vous aide, vous pouvez désactiver cette option en allant à:

Settings > Intentions > Android > Insert App Indexing API code

et décocher.

3
elevenfive

vous pouvez désactiver cette option en décochant l'option sur:

Settings > Editor > Intentions > Android > Insert App Indexing API code

Pour le trouver, tapez "code api" dans le champ de recherche de la fenêtre Fichier> Paramètres ..__ C'est dans mon installation de Android Studio 2.2.3

0
steveputz