Android - dodanie co najmniej jednego działania z filtrem intencji ACTION-VIEW po zaktualizowaniu zestawu SDK 23

305

W AndroidManifest.xml otrzymuję następującą podpowiedź :

Wyszukiwarka Google nie może indeksować aplikacji; rozważ dodanie co najmniej jednego działania z wypełniaczem zamiarów ACTION-VIEW. Aby uzyskać więcej informacji, zobacz objaśnienie problemu.

Dodaje precyzyjne linki, aby wprowadzić Twoją aplikację do indeksu Google, aby uzyskać instalacje i ruch do Twojej aplikacji z wyszukiwarki Google.

wprowadź opis zdjęcia tutaj

Czy ktoś może wyjaśnić, dlaczego tak jest?

Pratik Butani
źródło
Aby zobaczyć to w akcji, zobacz tutaj: stackoverflow.com/questions/56631387/…
user1506104

Odpowiedzi:

239

Z oficjalnej dokumentacji:

Aby umożliwić Google indeksowanie treści aplikacji i umożliwić użytkownikom wprowadzanie aplikacji z wyników wyszukiwania, musisz dodać filtry celowe dla odpowiednich działań w manifeście aplikacji. Te filtry zamiarów pozwalają na głębokie linkowanie do treści w dowolnej z Twoich aktywności. Na przykład użytkownik może kliknąć precyzyjny link, aby wyświetlić stronę w aplikacji zakupowej, która opisuje ofertę produktu, której szuka użytkownik.

Za pomocą tego linku Włączanie precyzyjnych linków do treści aplikacji zobaczysz, jak z nich korzystać.

I za pomocą tego testu implementacji indeksowania aplikacji przetestuj go.

Poniższy fragment kodu XML pokazuje, w jaki sposób możesz określić filtr zamiaru w manifeście do głębokiego linkowania.

<activity
    android:name="com.example.android.GizmosActivity"
    android:label="@string/title_gizmos" >
    <intent-filter android:label="@string/filter_title_viewgizmos">
        <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://www.example.com/gizmos” -->
        <data android:scheme="http"
              android:host="www.example.com"
              android:pathPrefix="/gizmos" />
        <!-- note that the leading "/" is required for pathPrefix-->
        <!-- Accepts URIs that begin with "example://gizmos” -->
        <data android:scheme="example"
              android:host="gizmos" />

    </intent-filter>
</activity>

Aby przetestować przez Android Debug Bridge

$ adb shell am start
        -W -a android.intent.action.VIEW
        -d <URI> <PACKAGE>

$ adb shell am start
        -W -a android.intent.action.VIEW
        -d "example://gizmos" com.example.android
Mk.Sl.
źródło
5
@ schemat user25 to schemat uri, schemat może być http, https, ftp itp.
Bhargav
89
Cóż, to wszystko dla konkretnych aplikacji, to po co pokazywać to ostrzeżenie? nie wszystkie aplikacje tego potrzebują, nie wszystkie aplikacje obsługują przeglądanie niektórych witryn. Google jest tak denerwujące ..
user924
64
W każdym razie można go stłumić za pomocą narzędzi: ignore = "GoogleAppIndexingWarning"
ecle
12
Ciekawe, że ostrzeżenie mówi, że potrzebujesz ACTION-VIEWfiltru zamiarów, ale rozwiązanie wymaga action.VIEW. Podobnie, kliknięcie linku w Android Studio prowadzi do strony, na której ACTION-VIEWsię nie wyświetla. Co najmniej mogą zrobić z natrętnymi ostrzeżeniami, to przekazywać dokładne wiadomości i strony pomocy.
John Perry,
7
@ ecle Gdzie umieszcza się tę opcję? / Nieważne; Znalazłem: należy dodać xmlns:tools="http://schemas.android.com/tools"do manifesttagu, a następnie dodać tools:ignore...do applicationtagu.
John Perry,
190

Możesz usunąć ostrzeżenie, dodając poniższy kod w <intent-filter>środku<activity>

<action android:name="android.intent.action.VIEW" />
Bibin Johny
źródło
6
Ta praca jest dla mnie. Myślę, że to jest odpowiedź, której szukam.
Mahmudur Rahman,
13
To wydaje się być poprawnym rozwiązaniem, jeśli nie chcesz włączyć indeksowania aplikacji. Zamiast usuwać ostrzeżenie za pośrednictwem tools:ignore="GoogleAppIndexingWarning". Dodałem go jako rodzeństwo do <action android:name="android.intent.action.MAIN" />głównej działalności.
Daniel F,
4
ale dlaczego potrzebujemy tej linii w kodzie na ślepo? jakiś konkretny powód?
Ghanshyam Nayma
15
@ GhanshyamNayma dodanie tego wiersza po prostu usuwa ostrzeżenie. Bez dodatkowego kodu potrzebnego do dodania faktycznego indeksowania aplikacji. Nie do końca najlepsza praktyka, ale rozumiem, że ostrzeżenia są denerwujące. Po prostu poszedłbym tools:ignore="GoogleAppIndexingWarning"zamiast tego, ponieważ wtedy nie dodasz pustego WIDOKU ACTION_VIEW. Może to nie powodować żadnych problemów, ale zawsze chcesz być bezpieczny.
Carson J.
8
Ach, więc TO właśnie dlatego tak wiele losowych aplikacji wyświetla się teraz dla ACTION_VIEW ... eesh
CCJ
135
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.app"
tools:ignore="GoogleAppIndexingWarning">

Możesz usunąć ostrzeżenie, dodając xmlns:tools="http://schemas.android.com/tools"i tools:ignore="GoogleAppIndexingWarning"do <manifest>tagu.

Pat Lee
źródło
3
To działa dla mnie i dokładnie tego szukałem.
Sayan Sil
To idealne rozwiązanie.
Rudra
4
To nie jest idealne rozwiązanie, ponieważ nie pozwoli Google na indeksowanie aplikacji. Ignorując coś, powinieneś spróbować rozwiązać ten problem.
Pratik Butani,
@PratikButaniAndroidDev indeksowania w AppStore nie jest priorytetem dla wielu deweloperów, głównie począwszy rozwijającego aplikację ..
Maher Abuthraa
25

Dodanie tego filtru zamiaru do jednej z czynności zadeklarowanych w manifeście aplikacji naprawiło to dla mnie.

<activity
    android:name=".MyActivity"
    android:screenOrientation="portrait"
    android:label="@string/app_name">

    <intent-filter>

       <action android:name="android.intent.action.VIEW" />

    </intent-filter>

</activity>
Oladipo Olasemo
źródło
Mam to, ale z intent.action.MAIN i nie zniknęło.
C. Skjerdal,
Musisz upewnić się, że jest ustawiony na android.intent.action.VIEW
Oladipo Olasemo
1

to rozwiązanie działa tylko, jeśli chcesz zignorować to Ostrzeżenie

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning"
    package="com.example.saloononlinesolution">
Ben dziesięć
źródło