迁移到最新的 API

如果您目前使用的是低于 10.0.0 版的 Firebase App Indexing API,并且想要迁移到最新版本,请按照下列步骤操作。

在开始之前,请确保您已将 Firebase 添加到自己的应用中。

更新 App Indexing 库

转到应用的 build.gradle 脚本并添加以下依赖项:

dependencies {
  ...
  implementation 'com.google.firebase:firebase-appindexing:16.0.1'
  ...
}
      

更新 Activity 中的导入项

      // Before
      import com.google.android.gms.appindexing.Action;
      import com.google.android.gms.appindexing.AppIndex;
      import com.google.android.gms.common.api.GoogleApiClient;

      // After
      import com.google.firebase.appindexing.Action;
      import com.google.firebase.appindexing.FirebaseUserActions;
      import com.google.firebase.appindexing.Indexable;
      import com.google.firebase.appindexing.builders.Actions;
      

移除对 Google API 客户端的调用

public class ViewMessageActivity extends Activity {
  ...
  // Delete this
  private GoogleApiClient mClient;
  ...

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    ...
    // Delete this
   mClient = new GoogleApiClient.Builder(this)
        .addApi(AppIndex.API)
        .build();
    …
   }
 }
 

更新用户操作构建器

      //Before
      public Action getAction() {
       Thing object = new Thing.Builder()
        .setName(mText)
        .setUrl(mUrl)
        .build();

      return new Action.Builder(Action.TYPE_VIEW)
        .setObject(object)
        .build();
     }
      

      // After
     public Action getAction() {
         return Actions.newView(mText, mUrl);
     }
     

更新用户操作调用

在使用新版本的 API 记录对应用中任何内容的操作之前,请确保您已将该内容添加到设备上的索引中。现在,在调用 start() 或 stop() 日志记录函数之前,如果您尚未向索引中添加相关内容,那么首先应该调用某个函数以将该内容添加到索引中。

//Before

@Override
protected void onStart() {
   super.onStart();
   mClient.connect();
   AppIndex.AppIndexApi.start(mClient, getAction());
}

@Override
protected void onStop() {
   AppIndex.AppIndexApi.end(mClient, getAction());
   mClient.disconnect();
   super.onStop();
}


// After

@Override
protected void onStart() {
   super.onStart();
   /* If you’re logging an action on an item that has already been added to the index,
   you don’t have to add the following update line. See
   https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index for
   adding content to the index */
   FirebaseAppIndex.getInstance().update(getIndexable());
   FirebaseUserActions.getInstance().start(getAction());
}

@Override
protected void onStop() {
   FirebaseUserActions.getInstance().end(getAction());
   super.onStop();
}

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面