Android - การเพิ่มกิจกรรมอย่างน้อยหนึ่งรายการด้วยตัวกรองเจตนา ACTION-VIEW หลังจากอัปเดต SDK เวอร์ชัน 23


305

ฉันได้รับคำแนะนำเครื่องมือต่อไปนี้ในAndroidManifest.xml :

Google Search ไม่สามารถจัดทำดัชนีแอปได้ พิจารณาการเพิ่มกิจกรรมอย่างน้อยหนึ่งกิจกรรมที่มีการบรรจุโดยเจตนา ACTION-VIEW ดูคำอธิบายปัญหาสำหรับรายละเอียดเพิ่มเติม

เพิ่มลิงก์เชิงลึกเพื่อนำแอปของคุณไปไว้ในดัชนีของ Google เพื่อรับการติดตั้งและการรับส่งข้อมูลไปยังแอพของคุณจากการค้นหาโดย Google

ป้อนคำอธิบายรูปภาพที่นี่

มีใครอธิบายได้ไหมว่าทำไมถึงเป็นเช่นนั้น?


หากต้องการดูการทำงานจริงให้ดูที่นี่: stackoverflow.com/questions/56631387/…
user1506104

คำตอบ:


239

จากเอกสารอย่างเป็นทางการ:

หากต้องการให้ Google รวบรวมข้อมูลเนื้อหาแอปของคุณและอนุญาตให้ผู้ใช้ป้อนแอปของคุณจากผลการค้นหาคุณต้องเพิ่มตัวกรองความตั้งใจสำหรับกิจกรรมที่เกี่ยวข้องในรายการแอปของคุณ ตัวกรองเจตนาเหล่านี้ช่วยให้สามารถเชื่อมโยงไปยังเนื้อหาในกิจกรรมใด ๆ ของคุณได้อย่างลึกซึ้ง ตัวอย่างเช่นผู้ใช้อาจคลิกที่ลิงก์ลึกเพื่อดูหน้าภายในแอปสำหรับช็อปปิ้งที่อธิบายถึงการนำเสนอผลิตภัณฑ์ที่ผู้ใช้กำลังค้นหา

การใช้ลิงก์นี้การเปิดใช้งานลิงก์ลึกสำหรับเนื้อหาแอปคุณจะเห็นวิธีใช้งาน

และการใช้งานการทดสอบการจัดทำดัชนีแอพของคุณวิธีทดสอบ

ตัวอย่าง 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
ทั้งหมดนี้เป็นแอพเฉพาะแล้วทำไมต้องแสดงคำเตือนนั้น ไม่ใช่ทุกแอพที่ต้องการสิ่งนี้ไม่ใช่ทุกแอพเป็นเวบไซต์ของบางเว็บไซต์ Google น่ารำคาญมาก ..
924

64
มันสามารถเก็บกดอยู่แล้วด้วยเครื่องมือ: ละเว้น = "GoogleAppIndexingWarning"
ecle

12
อยากรู้อยากเห็นว่าคำเตือนว่าคุณจำเป็นต้องมีACTION-VIEWความตั้งใจที่จะกรอง action.VIEWแต่การแก้ปัญหาที่เกี่ยวข้องกับการ เช่นเดียวกันการติดตามลิงก์ใน Android Studio จะนำคุณไปยังเว็บเพจที่ACTION-VIEWไม่ปรากฏขึ้น อย่างน้อยที่สุดพวกเขาสามารถทำได้ด้วยคำเตือนที่ไม่พึงประสงค์คือให้ข้อความที่ถูกต้องและหน้าช่วยเหลือ
John Perry

7
@ecle มีตัวเลือกนี้อยู่ที่ไหน / ไม่เป็นไร; ผมพบว่ามัน: หนึ่งมีการเพิ่มxmlns:tools="http://schemas.android.com/tools"ไปยังmanifestแท็กแล้วเพิ่มtools:ignore...ไปยังapplicationแท็ก
John Perry

190

คุณสามารถลบคำเตือนโดยการเพิ่มรหัสด้านล่างใน<intent-filter>ภายใน<activity>

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

6
งานนี้สำหรับฉัน ฉันคิดว่านี่เป็นคำตอบที่ฉันต้องการ
Mahmudur Rahman

13
นี่ดูเหมือนจะเป็นทางออกที่ถูกต้องหากคุณไม่ต้องการเปิดใช้งานการจัดทำดัชนีแอป tools:ignore="GoogleAppIndexingWarning"มากกว่าแค่การลบเตือนผ่านทาง ฉันเพิ่มมันเป็นพี่น้อง<action android:name="android.intent.action.MAIN" />ในกิจกรรมหลัก
Daniel F

4
แต่ทำไมเราต้องการบรรทัดนี้ในรหัสสุ่มสี่สุ่มห้า เหตุผลเฉพาะใด ๆ
Ghanshyam Nayma

15
@ GhanshyamNayma เพิ่มบรรทัดนี้เพียงแค่ลบคำเตือน ไม่มีรหัสพิเศษที่จำเป็นในการเพิ่มการจัดทำดัชนีแอปที่แท้จริง ไม่ใช่วิธีปฏิบัติที่ดีที่สุด แต่ฉันเข้าใจว่าคำเตือนนั้นน่ารำคาญ ฉันจะไปtools:ignore="GoogleAppIndexingWarning"แทนเพราะคุณจะไม่เพิ่ม ACTION_VIEW ที่ว่างเปล่า อาจไม่ทำให้เกิดปัญหาใด ๆ แต่คุณต้องการความปลอดภัยเสมอ
Carson 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

@PratikButaniAndroidDev การจัดทำดัชนีใน AppStore ไม่ได้ให้ความสำคัญกับนักพัฒนาจำนวนมากโดยส่วนใหญ่เป็นการเริ่มต้นพัฒนาแอป ..
Maher Abuthraa

25

การเพิ่มตัวกรองเจตนานี้ลงในหนึ่งในกิจกรรมที่ประกาศในแอปพลิเคชั่นแก้ไขสิ่งนี้ให้ฉัน

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

    <intent-filter>

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

    </intent-filter>

</activity>

ฉันมีสิ่งนี้ แต่ด้วยเจตนาทำปฏิกิริยาขั้นสูงและมันก็ไม่ได้หายไปไหน
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.