1

Je réalise actuellement l'indexation de l'application de Google api et les capacités de recherche vocale dans ma demande, et je suis en cours d'exécution problème avec Google ne recherche pas mon application sur certains appareils. La plupart des appareils que j'ai testé sur le travail comme prévu après leur code lab example où une recherche locale avec saisie semi-automatique apparaît pour le contenu recherché dans ma demande. Mon application apparaît dans les applications à rechercher dans les paramètres de Google Phone Search lorsqu'elle fonctionne correctement.Android App Indexing Autocomplete

Cependant, pour une raison ou certains appareils que j'ai testé (en particulier un Galaxy S3 en cours d'exécution 4.3 et un Galaxy Note 3 en cours d'exécution 4.4.2) ne semblent pas mon application dans le Google Phone Paramètres de recherche. Ce qui à son tour signifie qu'aucun de mes résultats de saisie semi-automatique n'apparaît malgré l'API d'indexation des applications qui m'indique que l'appel de l'API d'index a réussi. Lorsque l'application est manquante dans le téléphone Paramètres de recherche, Google recherche vocale dans mon application échoue aussi, quand il fonctionne habituellement avec en disant « Rechercher < -MyApplication-> pour < -Content-> ».

liens profonds que je l'ai mis en place dans mon application semblent fonctionner indépendamment de saisie semi-automatique ou de la voix de travail de recherche. Ce qui m'amène à croire que ce problème pourrait même ne pas être résolu dans l'application.

Voici un regard sur mon manifeste:

<activity android:name=".StartActivity" 
       android:theme="@android:style/Theme.NoDisplay" 
       android:noHistory="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
     <!--Google Voice Search--> 
     <intent-filter> 
      <action android:name="com.google.android.gms.actions.SEARCH_ACTION"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 
     <!--Deep link--> 
     <intent-filter> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data android:scheme="MyApp"/> 
      <action android:name="android.intent.action.VIEW"/> 
     </intent-filter> 
    </activity> 

Et voici comment j'appelle l'indexation app api dans l'une de mes activités:

private void fireNewApplicationIndex(){ 
    try { 
      JSONObject obj; 
      ... 

      //The filters have been updated within the running activity 
      if(deepLink != null && mClient.isConnected()){ 
       AppIndex.AppIndexApi.viewEnd(mClient, this, deepLink); 
       deepLink = null; 
      } 

      //Connect the client if it wasn't already 
      if(!mClient.isConnected()) 
       mClient.connect(); 

      //Report to google the deep link and the auto complete title 
      deepLink = Uri.parse(obj.getString(UriHandler.DEEP_LINK)); 
      PendingResult<Status> result = AppIndex.AppIndexApi.view(mClient, this, deepLink, title, UriHandler.EMPTY_WEB_URI, null); 
      result.setResultCallback(new ResultCallback<Status>() { 
       @Override 
       public void onResult(Status status) { 
        if(status.isSuccess()){ 
         Log.d(TAG, "App Indexing success " + title); 
        } else { 
         Log.d(TAG, "App Indexing failure: " + status.toString()); 
        } 
       } 
      }); 

     } 
    } catch (Exception e) { 
     Log.d("App Indexing", e.getMessage() + ""); 
     if(mClient.isConnected()) 
      mClient.disconnect(); 
    } 
} 

Répondre

2

Après le débogage beaucoup et en comparant mes appareils de test, je constaté que les appareils ne parviennent pas à afficher la saisie semi-automatique avait une ancienne version de l'application Google. Afin que les applications soient reconnues pour être recherchées et afficher la saisie semi-automatique, l'application Google doit être v4.2 +!