1

我已经为我的游戏应用程序添加了应用程序索引和深度链接功能作为插件.. 深度链接工作正常,应用程序索引功能,即自动完成功能不工作,.. 作为,

PendingResult<Status> result=AppIndex.AppIndexApi.end(mClient,getAction());

result.setResultCallback(new ResultCallback<Status>()

以上代码:访问页面的回调记录;

并在尝试搜索类似于页面时显示在 Play 商店中。

但它没有显示自动完成..

4

1 回答 1

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

于 2016-05-17T13:11:06.090 回答