Dans le manifeste, l'activité qui doit être deeplinked (par un URI qui peut être ouvert défini par vous) devrait ont la structure suivante:
<activity
android:name=".MyActivity"
<intent-filter android:label="@string/app_name">
<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://my-app.com/mypage" -->
<data android:scheme="http"
android:host="my-app.com"
android:pathPrefix="/mypage" />
</intent-filter>
</activity>
Dans votre activité, définissez un URI qui identifie de manière unique cette activité. Il devrait être dans le format suivant: //android-app://<package_name>/<scheme>/[host_path])
.
Par exemple:
private static final Uri MY_URI = Uri.parse("android-app://com.myapp/http/my-app.com/mypage/");
En outre, vous aurez besoin d'utiliser une instance de la GoogleApiClient.
private GoogleApiClient mClient;
Dans la fonction onCreate, initialiser le client:
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.APP_INDEX_API).build();
Ensuite, le cas échéant dans le code, se connecter au client et créer une action qui sera transmis à l'API AppIndex.
Par exemple:
// Connect your client
mClient.connect();
// Define a title for your current page, shown in autocompletion UI
final String TITLE = "My Title";
//Define an action
Action viewAction = Action.newAction(Action.TYPE_VIEW, TITLE, MY_URI);
// Call the App Indexing API view method
PendingResult<Status> result = AppIndex.AppIndexApi.start(mClient, viewAction);
result.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
Log.d(TAG, "App Indexing API: Recorded view successfully.");
} else {
Log.e(TAG, "App Indexing API: There was an error recording the view."
+ status.toString());
}
}
});
Enfin, déconnecter l'instance GoogleApiClient dans la onStop Méthode:
mClient.disconnect();
Je suggère que vous passez par le tutoriel suivant sur Google CodeLabs pour AppIndexing et deeplinking. Vous devez connaître le fonctionnement de la liaison profonde avant de pouvoir implémenter correctement l'indexation des applications.
https://codelabs.developers.google.com/codelabs/app-indexing/#0
n ° Il est pas nécessaire de publier la plus récente application sur la boutique de jeux pour la fonction de saisie semi-automatique fonctionne. Veuillez poster votre code plus en détail afin que les gens puissent vous aider. –
oui ce n'est pas nécessaire .. Auto complète fonctionne correctement maintenant ... Merci. Mais quand je clique sur l'option Auto Complete page, il ne me lie pas à l'application de jeu. signifie que chaque fois que je clique sur Auto complète, il n'ouvre pas le jeu. Est-il nécessaire que la version configurée soit publiée pour la vérifier? –
Veuillez poster le code de votre fichier manifeste où vous avez traité les liens profonds. J'espère que vous avez défini le schéma d'URL du lien profond dans le manifeste de l'activité qui doit être ouverte lorsque vous cliquez sur l'option d'achèvement automatique. –