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 dùng 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 của 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ó, cho dù nội dung đó nằm trên thiết bị hay trên Internet. Để giúp tạo trải nghiệm tìm kiếm nhất quán cho người dùng, 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. 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 của mình. 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ác truy vấn tìm kiếm đến một hoạt động cụ thể thực hiện 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 cho thấy ví dụ về hộp thoại tìm kiếm có các đề xuất tìm kiếm 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ư 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 truy vấn gần đây của người dùng.
  • Đưa ra 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.
  • Đề 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 một thiết bị cung cấp nút TÌM KIẾM riêng biệt để 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 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 Gọi hộp thoại tìm kiếm.

Các trang sau đây cho 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 đề 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 truy vấn đã 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à đề 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á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 của họ (bao gồm cả các lượt 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ạn phải gửi, đừng ghi nhật ký thông tin đó.

    Thông tin cá nhân là mọi thông tin có thể xác định danh tính cá nhân của người dùng, chẳng hạn như tên, địa chỉ email, thông tin thanh toán hoặc các dữ liệu khác có thể liên kết một cách hợp lý với 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ự hỗ trợ của máy chủ, hãy tránh gửi thông tin cá nhân cùng với các truy vấn tìm kiếm. Ví dụ: nếu bạn đang tìm kiếm các 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ỉ 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ý thông tin đó, 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, các đề xuất này dựa trên các lượt tìm kiếm trước đó hoặc các hành động khác mà người dùng đã thực hiện trong một phiên trước đó. Người dùng có thể không muốn các lượt tìm kiếm trước đó bị tiết lộ cho những người dùng thiết bị khác. Nếu ứng dụng của bạn đưa ra các đề xuất có thể tiết lộ các hoạt động tìm kiếm trước đó, hãy triển khai 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.