Android - SDK 23 sürümünü güncelledikten sonra ACTION-VIEW amaç filtresiyle en az bir Etkinlik ekleme


305

AndroidManifest.xml dosyasında aşağıdaki araç ipucunu alıyorum :

Uygulama Google Arama tarafından dizine eklenemez; ACTION-VIEW hedef dolgu içeren en az bir Etkinlik eklemeyi düşünebilirsiniz. Daha fazla ayrıntı için sorun açıklamasına bakın.

Uygulamanızı Google dizinine almak, Google Arama'dan uygulamanıza yükleme ve trafik almak için derin bağlantılar ekler.

resim açıklamasını buraya girin

Herkes neden böyle olduğunu açıklayabilir mi?


Eylem halinde görmek için buraya bakın: stackoverflow.com/questions/56631387/…
user1506104

Yanıtlar:


239

Resmi belgelerden:

Google'ın uygulama içeriğinizi taramasını sağlamak ve kullanıcıların uygulamanıza arama sonuçlarından girmesine izin vermek için uygulama bildiriminizde ilgili etkinlikler için niyet filtreleri eklemeniz gerekir. Bu niyet filtreleri, herhangi bir etkinliğinizde içeriğe derinlemesine bağlantı yapılmasını sağlar. Örneğin, kullanıcı, bir alışveriş uygulamasında, kullanıcının aradığı ürünü sunan bir sayfayı görüntülemek için derin bir bağlantıyı tıklayabilir.

Bu bağlantıyı kullanarak Uygulama İçeriği için Derin Bağlantıları etkinleştirdiğinizde nasıl kullanılacağını göreceksiniz.

Ve bu Test App Dizinleme Uygulama test nasıl test etmek kullanarak.

Aşağıdaki XML snippet'i, manifest'inizde derin bağlantı için nasıl bir niyet filtresi belirtebileceğinizi gösterir.

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

Android Hata Ayıklama Köprüsü ile test etmek için

$ 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
@ user25 düzeni uri düzeni, düzeni http, https, ftp vb olabilir
Bhargav

89
tüm bu belirli uygulamalar için, o zaman neden bu uyarıyı göstereyim? tüm uygulamaların buna ihtiyacı yoktur, tüm uygulamalar bazı sitelerin web görünümü değildir. Google çok can sıkıcı ..
user924

64
Yine de araçlarla bastırılabilir: ignore = "GoogleAppIndexingWarning"
ecle

12
Uyarının bir ACTION-VIEWniyet filtresine ihtiyacınız olduğunu söylüyor , ancak çözüm içeriyor action.VIEW. Benzer şekilde, Android Studio'daki bağlantıyı izlemek sizi ACTION-VIEWgörünmeyen bir web sayfasına götürür . Rahatsız edici uyarılarla yapabildikleri en az şey size doğru mesajlar ve yardım sayfaları vermektir.
John Perry

7
@ecle Bu seçenek nereye konur? / Boşver; Ben buldum: Tek eklemek zorunda xmlns:tools="http://schemas.android.com/tools"için manifest, sonra etiketi eklemek tools:ignore...için applicationetiketi.
John Perry

190

<intent-filter>İçeride aşağıdaki kodu ekleyerek uyarıyı kaldırabilirsiniz<activity>

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

6
Bu iş benim için. Bence aradığım cevap bu.
Mahmudur Rahman

13
Uygulama dizine eklemeyi etkinleştirmek istemiyorsanız, bu doğru çözüm gibi görünüyor. Sadece üzerinden uyarıyı kaldırmak yerine tools:ignore="GoogleAppIndexingWarning". <action android:name="android.intent.action.MAIN" />Ana etkinliğe kardeş olarak ekledim .
Daniel F

4
ama neden bu kodda körü körüne ihtiyacımız var? Belirli bir nedeni var mı?
Ghanshyam Nayma

15
@GhanshyamNayma bu satırı ekleyerek uyarıyı kaldırır. Ek uygulama kodu olmadan gerçek uygulama indeksleme eklemek için. Tam olarak en iyi uygulama değil, ancak uyarıların can sıkıcı olduğunu anlıyorum. Bunun tools:ignore="GoogleAppIndexingWarning"yerine boş bir ACTION_VIEW eklemeyeceğiniz için bununla birlikte giderdim. Herhangi bir soruna neden olmayabilir, ancak her zaman güvende olmak istersiniz.
Carson J.

8
ah işte bu yüzden şu anda ACTION_VIEW için birçok rastgele uygulama gösteriliyor ... 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">

Sen ekleyerek uyarıyı kaldırabilir xmlns:tools="http://schemas.android.com/tools"ve tools:ignore="GoogleAppIndexingWarning"hiç <manifest>etiketi.


3
Bu benim için çalışıyor ve tam da aradığım çözüm.
Sayan Sil

Bu mükemmel bir çözüm.
Rudra

4
Google'ın uygulamayı dizine eklemesine izin vermeyeceği için mükemmel bir çözüm değil. Bir şeyi görmezden gelerek bu sorunun üstesinden gelmeye çalışmalısınız.
Pratik Butani

App Store'da @PratikButaniAndroidDev Dizine Ekleme, pek çok geliştiriciye öncelikli olarak uygulama geliştirmeye
başlamıyor

25

Uygulama bildiriminde belirtilen etkinliklerden birine bu niyet filtresini eklemek bunu benim için düzeltti.

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

    <intent-filter>

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

    </intent-filter>

</activity>

Ben var ama intent.action.MAIN ile ve gitmedi.
C. Skjerdal


1

bu çözüm yalnızca çalışır.Bu uyarıyı yoksaymak istiyorsanız

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning"
    package="com.example.saloononlinesolution">
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.