Tích hợp các tính năng tìm kiếm của Android vào ứng dụng của bạn

Thử cách Compose
Jetpack Compose là bộ công cụ giao diện người dùng được đề xuất cho Android. Tìm hiểu cách thêm chức năng tìm kiếm trong Compose.

Tìm kiếm là một tính năng cốt lõi dành cho người dùng trên Android. Người dùng phải có thể tìm kiếm mọi dữ liệu mà họ có quyền truy cập, cho dù nội dung đó nằm trên thiết bị hay trên Internet. Để giúp người dùng có được trải nghiệm tìm kiếm nhất quán, Android cung cấp một khung tìm kiếm giúp bạn triển khai tính năng tìm kiếm cho ứng dụng của mình.

Hình 1. Một hộp thoại tìm kiếm có các đề xuất tìm kiếm tuỳ chỉnh.

Khung tìm kiếm cung cấp 2 chế độ nhập nội dung tìm kiếm: hộp thoại tìm kiếm ở đầu màn hình hoặc tiện ích tìm kiếm (SearchView) mà bạn có thể nhúng vào bố cục hoạt động. Trong cả hai trường hợp, hệ thống Android sẽ hỗ trợ việc triển khai tính năng tìm kiếm bằng cách gửi cụm từ tìm kiếm đến một hoạt động cụ thể thực hiện các lượt tìm kiếm. Bạn cũng có thể bật hộp thoại hoặc tiện ích tìm kiếm để cung cấp đề xuất tìm kiếm khi người dùng nhập. Hình 1 minh hoạ ví dụ về hộp thoại tìm kiếm có các cụm từ tìm kiếm được đề xuất (không bắt buộc).

Sau khi thiết lập hộp thoại tìm kiếm hoặc tiện ích tìm kiếm, bạn có thể làm những việc sau:

  • Bật tính năng tìm kiếm bằng giọng nói.
  • Đưa ra đề xuất tìm kiếm dựa trên các cụm từ tìm kiếm gần đây của người dùng.
  • Cung cấp các đề xuất tìm kiếm tuỳ chỉnh phù hợp với kết quả thực tế trong dữ liệu ứng dụng của bạn.
  • Đưa ra các đề xuất tìm kiếm của ứng dụng trong Hộp tìm kiếm nhanh trên toàn hệ thống.

Lưu ý: Khung tìm kiếm không cung cấp API để tìm kiếm dữ liệu của bạn. Để thực hiện tìm kiếm, bạn cần sử dụng các API phù hợp với dữ liệu của mình. Ví dụ: nếu dữ liệu của bạn được lưu trữ trong cơ sở dữ liệu SQLite, hãy sử dụng các API android.database.sqlite để thực hiện tìm kiếm.

Ngoài ra, không có gì đảm bảo rằng thiết bị sẽ cung cấp một nút TÌM KIẾM chuyên dụng để gọi giao diện tìm kiếm trong ứng dụng của bạn. Khi sử dụng hộp thoại tìm kiếm hoặc giao diện tuỳ chỉnh, bạn phải cung cấp một nút tìm kiếm trong giao diện người dùng để kích hoạt giao diện tìm kiếm. Để biết thêm thông tin, hãy xem phần Gọi hộp thoại tìm kiếm.

Các trang sau đây cho bạn biết cách sử dụng khung của Android để triển khai tính năng tìm kiếm:

Tạo giao diện tìm kiếm
Cách thiết lập ứng dụng để sử dụng hộp thoại tìm kiếm hoặc tiện ích tìm kiếm.
Thêm nội dung đề xuất từ cụm từ tìm kiếm gần đây
Cách đưa ra đề xuất dựa trên các cụm từ tìm kiếm đã dùng trước đó.
Thêm đề xuất tuỳ chỉnh
Cách đưa ra đề xuất dựa trên dữ liệu tuỳ chỉnh từ ứng dụng của bạn và cung cấp các đề xuất đó trong Hộp tìm kiếm nhanh trên toàn hệ thống.
Cấu hình có thể tìm kiếm được
Tài liệu tham khảo cho tệp cấu hình có thể tìm kiếm. Các tài liệu khác cũng thảo luận về tệp cấu hình theo các hành vi cụ thể.

Bảo vệ quyền riêng tư của người dùng

Khi triển khai tính năng tìm kiếm trong ứng dụng, hãy thực hiện các bước để bảo vệ quyền riêng tư của người dùng. Nhiều người dùng coi các hoạt động trên điện thoại (bao gồm cả nội dung tìm kiếm) là thông tin riêng tư. Để bảo vệ quyền riêng tư của người dùng, hãy tuân thủ các nguyên tắc sau:

  • Đừng gửi thông tin cá nhân đến máy chủ và nếu bắt buộc phải gửi, đừng ghi nhật ký thông tin đó.

    Thông tin cá nhân là bất kỳ thông tin nào có thể nhận dạng danh tính của người dùng, chẳng hạn như tên, địa chỉ email, thông tin thanh toán hoặc những dữ liệu khác có thể liên kết một cách hợp lý với những thông tin đó. Nếu ứng dụng của bạn triển khai tính năng tìm kiếm với sự trợ giúp của một máy chủ, hãy tránh gửi thông tin cá nhân cùng với các cụm từ tìm kiếm. Ví dụ: nếu đang tìm kiếm doanh nghiệp ở gần một mã ZIP, bạn không cần gửi cả mã nhận dạng người dùng; chỉ cần gửi mã ZIP đến máy chủ. Nếu bạn phải gửi thông tin cá nhân, hãy tránh ghi nhật ký thông tin đó. Nếu bạn phải ghi nhật ký, hãy bảo vệ dữ liệu đó một cách cẩn thận và xoá dữ liệu đó càng sớm càng tốt.

  • Cung cấp cho người dùng cách xoá nhật ký tìm kiếm của họ.

    Khung tìm kiếm giúp ứng dụng của bạn đưa ra các đề xuất theo ngữ cảnh trong khi người dùng nhập. Đôi khi, những đề xuất này dựa trên các cụm từ tìm kiếm trước đó hoặc những hành động khác mà người dùng đã thực hiện trong một phiên trước đó. Có thể người dùng không muốn những người dùng khác trên thiết bị thấy các nội dung tìm kiếm trước đây của họ. Nếu ứng dụng của bạn cung cấp các đề xuất có thể tiết lộ hoạt động tìm kiếm trước đây, hãy triển khai một cách để người dùng xoá nhật ký tìm kiếm của họ. Nếu đang sử dụng SearchRecentSuggestions, bạn có thể gọi phương thức clearHistory(). Nếu đang triển khai các đề xuất tuỳ chỉnh, bạn cần cung cấp một phương thức "xoá nhật ký" tương tự trong trình cung cấp nội dung mà người dùng có thể thực thi.