ChatGPT解决这个技术问题 Extra ChatGPT

Android - Adding at least one Activity with an ACTION-VIEW intent-filter after Updating SDK version 23

I am getting the following tool tip in AndroidManifest.xml:

App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent-filler. See issue explanation for more details. Adds deep links to get your app into the Google index, to get installs and traffic to your app from Google Search.

https://i.stack.imgur.com/ghLjy.png

Can anyone explain why it is so?

To see it in action, see here: stackoverflow.com/questions/56631387/…

P
Philip Herbert

From official documentation :

To enable Google to crawl your app content and allow users to enter your app from search results, you must add intent filters for the relevant activities in your app manifest. These intent filters allow deep linking to the content in any of your activities. For example, the user might click on a deep link to view a page within a shopping app that describes a product offering that the user is searching for.

Using this link Enabling Deep Links for App Content you'll see how to use it.

And using this Test Your App Indexing Implementation how to test it.

The following XML snippet shows how you might specify an intent filter in your manifest for deep linking.

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

To test via 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

@user25 scheme is the uri scheme, scheme can be http, https, ftp etc
well all of this for specific apps, then why show that warning? not all apps need this, not all apps are webview of some sites. Google is so annoying..
It can be suppressed anyway with tools:ignore="GoogleAppIndexingWarning"
Curious that the warning says you need an ACTION-VIEW intent-filter, yet the solution involves action.VIEW. Likewise, following the link in Android Studio takes you to a webpage where ACTION-VIEW does not appear. The least they could do with obtrusive warnings is give you accurate messages and help pages.
@ecle Where does one put this option? / Never mind; I found it: One has to add xmlns:tools="http://schemas.android.com/tools" to the manifest tag, then add tools:ignore... to the application tag.
B
Bibin Johny

You can remove the warning by adding the below code in <intent-filter> inside <activity>

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

This work's for me. I think this is the answer what I'm looking for.
This appears to be the correct solution if you don't want to enable app indexing. Rather than just removing the warning via tools:ignore="GoogleAppIndexingWarning". I added it as a sibling to <action android:name="android.intent.action.MAIN" /> in the main activity.
but why we need this line in code blindly ? any specific reason ?
@GhanshyamNayma adding this line just removes the warning. Without the extra code needed to add actual app indexing. Not exactly best practice, but I understand that warnings are annoying. I would just go with tools:ignore="GoogleAppIndexingWarning" instead because then you won't be adding an empty ACTION_VIEW. It might not cause any issues, but you always want to be safe.
ah so THIS is why so many random apps are showing up for ACTION_VIEW now... eesh
A
Andy Weinstein
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.app"
tools:ignore="GoogleAppIndexingWarning">

You can remove the warning by adding xmlns:tools="http://schemas.android.com/tools" and tools:ignore="GoogleAppIndexingWarning" to the <manifest> tag.


This works for me, and exactly the solution I was looking for.
This is the perfect solution.
Its not perfect solution as It will not allow Google to indexing app. By ignoring something you should try to overcome that issue.
@PratikButaniAndroidDev Indexing in AppStore is not priority to many developers mainly as starting developing app ..
O
Oladipo Olasemo

Adding this intent filter to one of the activities declared in app manifest fixed this for me.

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

    <intent-filter>

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

    </intent-filter>

</activity>

I have this but with intent.action.MAIN and it didn't go away.
You need to make sure it is set to android.intent.action.VIEW
b
benten

this solution work only .if your want to ignore this Warning

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

关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now