我为我的游戏应用程序添加了应用程序索引和深度链接的功能作为插件..深层链接工作正常,应用程序索引的功能,即自动完成功能无效,... as,
PendingResult<Status> result=AppIndex.AppIndexApi.end(mClient,getAction());
result.setResultCallback(new ResultCallback<Status>()
以上代码: 回叫被访问页面的记录;
每当尝试搜索类似于页面时,都会在Play商店中显示。
但它没有显示我自动完成..
答案 0 :(得分:3)
在清单中,需要深层链接的活动(可由您定义的URI打开)应具有以下结构:
<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>
在您的活动中,定义唯一标识该活动的URI。
它应采用以下格式://android-app://<package_name>/<scheme>/[host_path])
。
例如:
private static final Uri MY_URI = Uri.parse("android-app://com.myapp/http/my-app.com/mypage/");
此外,您还需要使用GoogleApiClient的实例。
private GoogleApiClient mClient;
在onCreate函数中,初始化客户端:
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.APP_INDEX_API).build();
然后,在代码中的任何位置,连接到客户端并创建一个将传递给AppIndex API的Action。
例如:
// 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());
}
}
});
最后,在onStop方法中断开GoogleApiClient实例:
mClient.disconnect();
我建议你在Google CodeLabs上进行以下关于AppIndexing和DeepLinking的教程。在正确实现应用程序索引之前,您需要了解深层链接的工作原理。
https://codelabs.developers.google.com/codelabs/app-indexing/#0