Android - Menambahkan setidaknya satu Aktivitas dengan filter maksud AKSI-LIHAT setelah Memperbarui SDK versi 23

305

Saya mendapatkan tip alat berikut di AndroidManifest.xml :

Aplikasi tidak dapat diindeks oleh Pencarian Google; pertimbangkan untuk menambahkan setidaknya satu Kegiatan dengan pengisi maksud ACTION-VIEW. Lihat penjelasan masalah untuk lebih jelasnya.

Menambahkan tautan dalam untuk memasukkan aplikasi Anda ke dalam indeks Google, untuk mendapatkan pemasangan dan lalu lintas ke aplikasi Anda dari Google Search.

masukkan deskripsi gambar di sini

Adakah yang bisa menjelaskan mengapa begitu?

Pratik Butani
sumber
Untuk melihatnya beraksi, lihat di sini: stackoverflow.com/questions/56631387/...
user1506104

Jawaban:

239

Dari dokumentasi resmi:

Untuk memungkinkan Google merayapi konten aplikasi Anda dan memungkinkan pengguna memasukkan aplikasi Anda dari hasil pencarian, Anda harus menambahkan filter maksud untuk aktivitas yang relevan di manifes aplikasi Anda. Filter maksud ini memungkinkan tautan mendalam ke konten di aktivitas apa pun Anda. Misalnya, pengguna dapat mengklik tautan yang dalam untuk melihat halaman di dalam aplikasi belanja yang menggambarkan penawaran produk yang dicari pengguna.

Menggunakan tautan ini. Mengaktifkan Deep Links untuk Konten Aplikasi Anda akan melihat bagaimana menggunakannya.

Dan gunakan ini Uji Implementasi Pengindeksan Aplikasi Anda cara mengujinya.

Cuplikan XML berikut ini menunjukkan bagaimana Anda dapat menentukan filter maksud dalam manifes Anda untuk penautan yang dalam.

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

Untuk menguji melalui 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
Mark
sumber
5
Skema @ user25 adalah skema uri, skema bisa http, https, ftp dll
Bhargav
89
nah semua ini untuk aplikasi tertentu, lalu mengapa menunjukkan peringatan itu? tidak semua aplikasi memerlukan ini, tidak semua aplikasi merupakan tampilan web dari beberapa situs. Google sangat menyebalkan ..
user924
64
Itu bisa ditekan dengan alat: abaikan = "GoogleAppIndexingWarning"
ecle
12
Penasaran bahwa peringatan itu mengatakan Anda perlu ACTION-VIEWfilter maksud, namun solusinya melibatkan action.VIEW. Demikian juga, mengikuti tautan di Android Studio membawa Anda ke halaman web tempatACTION-VIEW tidak muncul. Paling tidak yang bisa mereka lakukan dengan peringatan mencolok adalah memberi Anda pesan yang akurat dan halaman bantuan.
John Perry
7
@ecle Di mana orang meletakkan opsi ini? / Lupakan; Saya menemukannya: Seseorang harus menambahkan xmlns:tools="http://schemas.android.com/tools"ke manifesttag, kemudian menambahkan tools:ignore...ke applicationtag.
John Perry
190

Anda dapat menghapus peringatan dengan menambahkan kode di bawah ini di <intent-filter>dalam<activity>

<action android:name="android.intent.action.VIEW" />
Bibin Johny
sumber
6
Ini untukku. Saya pikir ini adalah jawaban yang saya cari.
Mahmudur Rahman
13
Ini tampaknya menjadi solusi yang tepat jika Anda tidak ingin mengaktifkan pengindeksan aplikasi. Daripada hanya menghapus peringatan via tools:ignore="GoogleAppIndexingWarning". Saya menambahkannya sebagai saudara <action android:name="android.intent.action.MAIN" />dalam kegiatan utama.
Daniel F
4
tetapi mengapa kita membutuhkan baris ini dalam kode secara membabi buta? ada alasan khusus?
Ghanshyam Nayma
15
@GhanshyamNayma menambahkan baris ini hanya menghilangkan peringatan. Tanpa kode tambahan yang diperlukan untuk menambahkan pengindeksan aplikasi yang sebenarnya. Bukan praktik terbaik, tapi saya mengerti bahwa peringatan itu mengganggu. Saya hanya akan pergi tools:ignore="GoogleAppIndexingWarning"karena Anda tidak akan menambahkan ACTION_VIEW kosong. Mungkin tidak menyebabkan masalah, tetapi Anda selalu ingin aman.
Carson J.
8
ah jadi INI sebabnya banyak aplikasi acak muncul untuk ACTION_VIEW sekarang ... 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">

Anda dapat menghapus peringatan dengan menambahkan xmlns:tools="http://schemas.android.com/tools"dan tools:ignore="GoogleAppIndexingWarning"ke <manifest>tag.

Pat Lee
sumber
3
Ini bekerja untuk saya, dan solusi tepat yang saya cari.
Sayan Sil
Ini solusi sempurna.
Rudra
4
Ini bukan solusi yang sempurna karena tidak akan memungkinkan Google untuk mengindeks aplikasi. Dengan mengabaikan sesuatu, Anda harus mencoba mengatasi masalah itu.
Pratik Butani
@PratikButaniAndroidDev Pengindeksan di AppStore bukan prioritas bagi banyak pengembang terutama sebagai memulai pengembangan aplikasi ..
Maher Abuthraa
25

Menambahkan filter maksud ini ke salah satu aktivitas yang dinyatakan dalam manifes aplikasi memperbaiki ini untuk saya.

<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
sumber
Saya memiliki ini tetapi dengan intent.action.MAIN dan itu tidak hilang.
C. Skjerdal
Anda harus memastikan itu disetel ke android.intent.action.VIEW
Oladipo Olasemo
1

solusi ini hanya berfungsi. jika Anda ingin mengabaikan Peringatan ini

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning"
    package="com.example.saloononlinesolution">
sepuluh Ben
sumber