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?


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

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" />

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.


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>

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">
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.