Android - Thêm ít nhất một Hoạt động với bộ lọc ý định ACTION-VIEW sau khi cập nhật SDK phiên bản 23


305

Tôi đang nhận được mẹo công cụ sau trong AndroidManifest.xml :

Ứng dụng không thể lập chỉ mục bởi Google Tìm kiếm; xem xét thêm ít nhất một Hoạt động với chương trình điền vào mục đích HÀNH ĐỘNG-XEM. Xem giải thích vấn đề để biết thêm chi tiết.

Thêm liên kết sâu để đưa ứng dụng của bạn vào chỉ mục của Google, để nhận cài đặt và lưu lượng truy cập vào ứng dụng của bạn từ Google Tìm kiếm.

nhập mô tả hình ảnh ở đây

Bất cứ ai có thể giải thích tại sao nó là như vậy?


Để xem nó hoạt động, xem tại đây: stackoverflow.com/questions/56631387/ trên
user1506104

Câu trả lời:


239

Từ tài liệu chính thức:

Để cho phép Google thu thập nội dung ứng dụng của bạn và cho phép người dùng nhập ứng dụng của bạn từ kết quả tìm kiếm, bạn phải thêm bộ lọc ý định cho các hoạt động có liên quan trong bảng kê khai ứng dụng của bạn. Các bộ lọc mục đích này cho phép liên kết sâu với nội dung trong bất kỳ hoạt động nào của bạn. Ví dụ: người dùng có thể nhấp vào liên kết sâu để xem trang trong ứng dụng mua sắm mô tả sản phẩm mà người dùng đang tìm kiếm.

Sử dụng liên kết này Kích hoạt liên kết sâu cho nội dung ứng dụng, bạn sẽ thấy cách sử dụng nó.

Và sử dụng Kiểm tra này Thực hiện lập chỉ mục ứng dụng của bạn làm thế nào để kiểm tra nó.

Đoạn mã XML sau đây cho thấy cách bạn có thể chỉ định bộ lọc ý định trong tệp kê khai của mình để liên kết sâu.

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

Để kiểm tra qua Cầu gỡ lỗi Android

$ 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
Lược đồ @ user25 là lược đồ uri, lược đồ có thể là http, https, ftp, v.v.
Bhargav

89
tất cả điều này cho các ứng dụng cụ thể, vậy thì tại sao lại hiển thị cảnh báo đó? không phải tất cả các ứng dụng đều cần điều này, không phải tất cả các ứng dụng đều là webview của một số trang web. Google thật khó chịu ..
user924

64
Dù sao thì nó cũng có thể bị chặn bằng các công cụ:
ign

12
Tò mò rằng cảnh báo nói rằng bạn cần một ACTION-VIEWbộ lọc ý định, nhưng giải pháp liên quan action.VIEW. Tương tự, theo liên kết trong Android Studio sẽ đưa bạn đến một trang web ACTION-VIEWkhông xuất hiện. Ít nhất họ có thể làm với các cảnh báo gây khó chịu là cung cấp cho bạn các thông điệp và trang trợ giúp chính xác.
John Perry

7
@ecle Trường hợp nào đặt tùy chọn này? / Đừng bận tâm; Tôi tìm thấy nó: Người ta phải thêm xmlns:tools="http://schemas.android.com/tools"vào manifestthẻ, sau đó thêm tools:ignore...vào applicationthẻ.
John Perry

190

Bạn có thể xóa cảnh báo bằng cách thêm mã bên dưới vào <intent-filter>bên trong<activity>

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

6
Công việc này là cho tôi. Tôi nghĩ rằng đây là câu trả lời tôi đang tìm kiếm.
Mahmudur Rahman

13
Đây dường như là giải pháp chính xác nếu bạn không muốn bật lập chỉ mục ứng dụng. Thay vì chỉ xóa cảnh báo qua tools:ignore="GoogleAppIndexingWarning". Tôi đã thêm nó như một người anh em <action android:name="android.intent.action.MAIN" />trong hoạt động chính.
Daniel F

4
Nhưng tại sao chúng ta cần dòng này trong mã một cách mù quáng? bất kỳ lý do cụ thể?
Ghanshyam Nayma

15
@GhanshyamNayma thêm dòng này chỉ cần loại bỏ cảnh báo. Không có mã bổ sung cần thiết để thêm lập chỉ mục ứng dụng thực tế. Không chính xác thực hành tốt nhất, nhưng tôi hiểu rằng cảnh báo là gây phiền nhiễu. Tôi sẽ chỉ đi với tools:ignore="GoogleAppIndexingWarning"thay vì sau đó bạn sẽ không thêm một ACTION_VIEW trống. Nó có thể không gây ra bất kỳ vấn đề nào, nhưng bạn luôn muốn được an toàn.
Carson J.

8
ah vậy ĐÂY là lý do tại sao rất nhiều ứng dụng ngẫu nhiên đang hiển thị cho ACTION_VIEW ngay bây giờ ... 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">

Bạn có thể xóa cảnh báo bằng cách thêm xmlns:tools="http://schemas.android.com/tools"tools:ignore="GoogleAppIndexingWarning"vào <manifest>thẻ.


3
Điều này làm việc cho tôi, và chính xác là giải pháp tôi đang tìm kiếm.
Sayan Sil

Đây là giải pháp hoàn hảo.
Rudra

4
Đây không phải là giải pháp hoàn hảo vì nó sẽ không cho phép Google lập chỉ mục ứng dụng. Bằng cách bỏ qua một cái gì đó bạn nên cố gắng khắc phục vấn đề đó.
Pratik Butani

@PratikButaniAndroidDev Lập chỉ mục trong AppStore không được ưu tiên cho nhiều nhà phát triển, chủ yếu là bắt đầu phát triển ứng dụng ..
Maher Abuthraa

25

Việc thêm bộ lọc ý định này vào một trong các hoạt động được khai báo trong bảng kê khai ứng dụng đã sửa lỗi này cho tôi.

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

    <intent-filter>

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

    </intent-filter>

</activity>

Tôi có cái này nhưng với ý định.action.MAIN và nó đã không biến mất.
C. Skjerdal

Bạn cần chắc chắn rằng nó được đặt thành android.intent.action.VIEW
Oladipo Olasemo

1

giải pháp này chỉ hoạt động. Nếu bạn muốn bỏ qua Cảnh báo này

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="GoogleAppIndexingWarning"
    package="com.example.saloononlinesolution">
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.