В манифесте, деятельность, которая должна быть deeplinked (открываемым с помощью 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();
Затем, по мере необходимости в коде, подключиться к клиенту и создать действие, которое будет передаваться в API AppIndex.
Например:
// 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());
}
}
});
Наконец, отсоедините экземпляр GoogleApiClient в методе OnStop:
mClient.disconnect();
Я хотел бы предложить вам пройти через следующий учебник по Google CodeLabs для AppIndexing и DeepLinking. Вам потребуется некоторое понимание того, как работает глубокая привязка, прежде чем вы сможете правильно внедрять индексирование приложений.
https://codelabs.developers.google.com/codelabs/app-indexing/#0
No. нет необходимости публиковать последнюю версию приложения на игровом магазине для функции автозавершения для работы. Пожалуйста, разместите свой код более подробно, чтобы люди могли вам помочь. –
да не нужно. Автоматическое завершение работает правильно ... Спасибо. Но когда я нажимаю на опцию Auto complete page, это не связывает меня с Game App. означает, что всякий раз, когда я нажимаю «Авто», он не открывает игру. необходимо ли опубликовать настроенную сборку, чтобы проверить ее? –
Просьба отправить код вашего файла манифеста, где вы обрабатывали deeplinks. Надеюсь, вы определили схему URL-адресов в манифесте для активности, которую нужно открыть, когда вы нажимаете на опцию автоматического завершения. –