Что представляет собой новый сгенерированный код "Он был сгенерирован автоматически для реализации API индексации приложений"?
Фон
Я только что создал новый POC сегодня (о переходах активности, но это не тема), и я заметил, что в методе onCreate основного актива пишется новая строка:
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
И больше:
@Override
public void onStart() {
super.onStart();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
mClient.connect();
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"SinglePhotoViewer Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this auto-generated web page URL is correct.
// Otherwise, set the URL to null.
Uri.parse("http://host/path"),
// TODO: Make sure this auto-generated app deep link URI is correct.
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
);
AppIndex.AppIndexApi.start(mClient, viewAction);
}
@Override
public void onStop() {
super.onStop();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"SinglePhotoViewer Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this auto-generated web page URL is correct.
// Otherwise, set the URL to null.
Uri.parse("http://host/path"),
// TODO: Make sure this auto-generated app deep link URI is correct.
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
);
AppIndex.AppIndexApi.end(mClient, viewAction);
mClient.disconnect();
}
и это было добавлено к манифесту:
<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
Эта проблема
Глядя на сайт, который был написан, я все еще не понимаю, что это такое.
Я думаю, это то, как его использовать, но я не понимаю, как все это работает.
Кроме того, странно то, что любой другой новый проект, который я создаю, не показывает эту новую строку кода
Вопросы
- Что это? Что оно делает?
- Что мне с этим делать?
- Есть ли какие-либо настройки для этого? Любые рекомендации?
- В каких случаях генерируется эта строка кода? Я не заметил, как и когда это создается...
Я предполагаю, что согласно тому, что я прочитал и увидел на сайте, это то, что это используется только для приложений, которые могут выполнять какой-то поиск, чтобы Google мог показывать пользователю предыдущие запросы и более быстрые результаты.
3 ответа
Вы правы: этот код автоматически создается для вас Android Studio, чтобы помочь в реализации API индексации приложений.
Однако он не создается простым добавлением нового действия в ваше приложение. Вам нужно было бы явно попросить Android Studio создать этот код. Затем вам нужно будет обновить его, указав подробную информацию о вашей деятельности: тип действия, название, глубокая ссылка, соответствующая веб-страница (если она существует).
Чтобы этот код был сгенерирован для вас, вы можете использовать всплывающий список намерений, нажав Alt + Enter, выберите "Вставить код API индексации приложения":
Или вы можете использовать всплывающий список генерации кода с помощью Alt + Insert, выберите "App Indexing API Code":
Вот соответствующая документация разработчиков Google:
https://developers.google.com/app-indexing/android/test
На самом деле есть всего четыре штуки, которые нужно настроить:
// What type of action is this? (TYPE_VIEW, TYPE_LISTEN, TYPE_WATCH, etc...)
Action.TYPE_VIEW
// Title of your page, just like the web
"SinglePhotoViewer Page"
// The web url of corresponding content, if exists, otherwise leave blank, ""
Uri.parse("http://host/path")
// Your deep link starting with "android-app://"
Uri.parse("android-app://com.example.user.transitionstest/http/host/path")
Рекомендуется выбрать заголовок, который наиболее точно описывает контент в этом месте ссылки в вашем приложении. Так же, как вы бы в <TITLE></TITLE>
теги в заголовке веб-страницы HTML.
После выполнения любого действия, которое просматривает ваш конечный пользователь, будет сообщаться эта глубокая ссылка на ОС Android. Затем он будет доступен в результатах "Предлагать автозаполнение", когда пользователь вводит запрос в окно быстрого поиска Google. Значок вашего приложения и название, которое вы указали, будут отображаться в результатах поиска, если пользовательский запрос соответствует вашему названию по ключевому слову.
Вот пример того, как это будет выглядеть с точки зрения конечных пользователей в приложении Live Nation, если предположить, что он ранее посетил две страницы, показанные в результатах Suggest слева:
Кроме того, реализовав API индексации приложений, вы получите повышение рейтинга в результатах поиска, как указано в ссылке, которую вы указали в исходном вопросе:
Это позволяет выполнять автозаполнение запросов для пользователей вашего приложения, а также улучшать результаты поиска, улучшать качество поиска и улучшать ранжирование сигналов.
Наконец, вас может заинтересовать эта кодовая лаборатория как дополнительный ресурс:
https://codelabs.developers.google.com/codelabs/app-indexing/
Если это поможет, вы можете отключить эту опцию, перейдя в:
Settings > Intentions > Android > Insert App Indexing API code
и сняв галочку
Вы можете отключить эту опцию, сняв флажок с:
Settings > Editor > Intentions > Android > Insert App Indexing API code
Чтобы найти его, введите "api code" в поле поиска в окне "Файл"> "Настройки". Это есть в моей установке Android Studio 2.2.3