1

В настоящее время я внедряю приложения Google для индексирования api и голосового поиска в своем приложении, и у меня возникают проблемы с Google, не выполняющим поиск моего приложения на определенных устройствах. Большинство устройств, которые я тестировал на работе, как и ожидалось, следуют их code lab example, где локальный поиск с автозаполнением появляется для содержимого, просматриваемого в моем приложении. Мое приложение появляется в приложениях для поиска в настройках поиска в Google Phone, когда он работает правильно.Объявление об индексировании приложений для Android

Однако по каким-то причинам определенные устройства, которые я тестировал (в частности, Galaxy S3 с 4.3 и Galaxy Note 3, работающие на 4.4.2), не отображаются в приложении Google Phone Search. Это, в свою очередь, означает, что ни один из моих результатов автозаполнения не появляется, несмотря на то, что App Indexing api говорит мне, что вызов index api был успешным. Когда приложение отсутствует в настройках поиска по телефону, голос Google в моем приложении также не работает, когда он обычно работает, когда говорит «Поиск < -MyApplication-> для < -Content->».

Глубокие ссылки, которые я установил в своем приложении, работают независимо от работы автозаполнения или голосового поиска. Это заставляет меня думать, что эта проблема может даже не быть чем-то, что я могу исправить в приложении.

Вот посмотрите на мой манифест:

<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> 

И вот как я называю приложение API индексации в одном из моих деятельности:

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(); 
    } 
} 

ответ

2

После долгих отладки и сравнивая мои тестовые устройства, я что устройства, не показывающие автозаполнение, имели более старую версию приложения Google. Чтобы распознавать приложения для поиска и отображения автозаполнения, приложение Google должно быть v4.2 +!

 Смежные вопросы

  • Нет связанных вопросов^_^