如果您目前使用的是低于 10.0.0 版的 Firebase App Indexing API,并且想要迁移到最新版本,请按照下列步骤操作。
在开始之前,请确保您已将 Firebase 添加到自己的应用中。
更新 App Indexing 库
转到应用的 build.gradle 脚本并添加以下依赖项:
dependencies { ... implementation 'com.google.firebase:firebase-appindexing:19.1.0' ... }
更新 Activity 中的导入项
// Beforeimport 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 thisprivate GoogleApiClient mClient;... @Override protected void onCreate(Bundle savedInstanceState) { ... // Delete thismClient = new GoogleApiClient.Builder(this) .addApi(AppIndex.API) .build();... } }
更新用户操作构建器
//Beforepublic 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. FirebaseAppIndex.getInstance().update(getIndexable()); FirebaseUserActions.getInstance().start(getAction()); } @Override protected void onStop() { FirebaseUserActions.getInstance().end(getAction()); super.onStop(); }