Android-SDKバージョン23の更新後にACTION-VIEWインテントフィルターを使用して少なくとも1つのアクティビティを追加する


305

AndroidManifest.xmlで次のツールヒントを取得しています

アプリはGoogle検索でインデックスに登録できません。ACTION-VIEWインテントフィラーを含むアクティビティを少なくとも1つ追加することを検討してください。詳細については、問題の説明を参照してください。

アプリをGoogleインデックスに追加し、Google検索からアプリへのインストールとトラフィックを取得するためのディープリンクを追加します。

ここに画像の説明を入力してください

なぜそうなのか誰でも説明できますか?


アクションでそれを見るには、こちらを参照してください。stackoverflow.com/questions/56631387/...
user1506104

回答:


239

公式ドキュメントから:

Googleがアプリのコンテンツをクロールできるようにして、ユーザーが検索結果からアプリを入力できるようにするには、アプリマニフェストで関連するアクティビティのインテントフィルターを追加する必要があります。これらのインテントフィルターを使用すると、任意のアクティビティのコンテンツにディープリンクできます。たとえば、ユーザーがディープリンクをクリックして、ユーザーが検索している商品を説明するショッピングアプリ内のページを表示する場合があります。

このリンクの使用アプリコンテンツのディープリンクを有効にすると、その使用方法がわかります。

そして、このApp Indexing実装のテストを使用して、テストする方法を説明します。

次のXMLスニペットは、ディープリンク用のマニフェストでインテントフィルターを指定する方法を示しています。

<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 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
@ user25スキームはuriスキームで、スキームはhttp、https、ftpなどにすることができます
Bhargav

89
これらすべてが特定のアプリに適している場合、なぜその警告を表示するのですか?すべてのアプリがこれを必要とするわけではありません。すべてのアプリが一部のサイトのWebViewであるとは限りません。グーグルはとてもうるさい..
user924

64
それはいずれにせよtools:ignore = "GoogleAppIndexingWarning"を使用して抑制できます
エクル

12
警告がACTION-VIEWインテントフィルターが必要であると警告していることに興味がありますが、解決策にはが含まれaction.VIEWます。同様に、Android Studioのリンクをたどると、ACTION-VIEWが表示されていないウェブページに移動します。彼らが邪魔な警告でできることは少なくとも、あなたに正確なメッセージとヘルプページを与えることです。
ジョンペリー

7
@ecleこのオプションはどこに置くのですか?/ 気にしないで; 私はそれを見つけました:タグに追加してxmlns:tools="http://schemas.android.com/tools"から、manifestタグに追加するtools:ignore...必要がありapplicationます。
ジョンペリー

190

<intent-filter>内部に以下のコードを追加することで警告を削除できます<activity>

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

6
この作品は私用です。これが私が探している答えだと思います。
Mahmudur Ra​​hman、2018

13
アプリのインデックス作成を有効にしたくない場合は、これが正しいソリューションのようです。むしろちょうど経由で警告を削除するよりもtools:ignore="GoogleAppIndexingWarning"<action android:name="android.intent.action.MAIN" />メインのアクティビティに兄弟として追加しました。
ダニエルF

4
しかし、なぜコードでこの行を盲目的に必要とするのですか?特定の理由?
Ghanshyam Nayma

15
@GhanshyamNaymaこの行を追加すると、警告が削除されるだけです。実際のアプリのインデックス作成を追加するために必要な追加のコードなし。正確にはベストプラクティスとは言えませんが、警告が煩わしいことは理解しています。私はちょうどに行くとtools:ignore="GoogleAppIndexingWarning"、あなたは空のACTION_VIEWを追加することはありませんので、代わりに。それは問題を引き起こさないかもしれませんが、あなたは常に安全になりたいです。
カーソンJ.

8
ああ、これが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">

タグにxmlns:tools="http://schemas.android.com/tools"およびtools:ignore="GoogleAppIndexingWarning"を追加すると、警告を削除でき<manifest>ます。


3
これは私にとっては機能し、まさに私が探していたソリューションです。
Sayan Sil

これは完璧なソリューションです。
Rudra

4
Googleがアプリをインデックスに登録することを許可しないため、完全なソリューションではありません。何かを無視することによって、あなたはその問題を克服しようとする必要があります。
Pratik Butani

AppStoreでの@PratikButaniAndroidDevインデックス作成は、主にアプリの開発を開始するときのように、多くの開発者にとって優先事項ではありません..
Maher Abuthraa

25

アプリのマニフェストで宣言されているアクティビティの1つにこのインテントフィルターを追加すると、これが修正されました。

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

    <intent-filter>

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

    </intent-filter>

</activity>

私はこれを持っていますが、intent.action.MAINを使用していますが、消えませんでした。
C. Skjerdal

android.intent.action.VIEWに設定されていることを確認する必要があります
Oladipo Olasemo

1

このソリューションは、この警告を無視したい場合にのみ機能します。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning"
    package="com.example.saloononlinesolution">
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.