Tìm kiếm là một tính năng người dùng cốt lõi trên Android. Người dùng phải có thể tìm kiếm bất kỳ dữ liệu nào có sẵn cho họ, cho dù nội dung đó nằm trên thiết bị hay trên Internet. Để giúp tạo ra 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.
![](https://developer.android.com/static/images/search/search-suggest-custom.png?authuser=8&hl=vi)
Hình 1. Hộp thoại tìm kiếm với 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 đều hỗ trợ việc triển khai tính năng tìm kiếm bằng cách phân phối các cụm từ tìm kiếm đến một hoạt động cụ thể thực hiện việc 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 các cụm từ tìm kiếm được đề xuất khi người dùng nhập. Hình 1 cho thấy ví dụ về hộp thoại tìm kiếm với 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ể thực hiện các thao tác sau:
- Bật tìm kiếm bằng giọng nói.
- Cung cấp cụm từ tìm kiếm được đề xuất 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 đề xuất tìm kiếm tùy chỉnh khớp với kết quả thực tế trong dữ liệu ứng dụng của bạn.
- Cung cấp 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 các API để tìm kiếm dữ liệu của bạ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 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 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ì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 các đề xuất truy vấn gần đây
- Cách đưa ra nội dung đề xuất dựa trên các cụm từ tìm kiếm đã dùng trước đây.
- 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 và đưa ra 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
- Tài liệu tham khảo về 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 về các hành vi cụ thể.
Bảo vệ quyền riêng tư của người dùng
Khi bạn triển khai tính năng tìm kiếm trong ứng dụng của mình, 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 hoạt động của họ 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 cho máy chủ‐và nếu cần, cũng đừng ghi lại thông tin đó.
Thông tin cá nhân là bất kỳ thông tin nào có thể nhận dạng cá nhân người dùng, chẳng hạn như tên, địa chỉ email, thông tin thanh toán hoặc dữ liệu khác có thể liên kết 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 tìm kiếm các doanh nghiệp ở gần một mã ZIP, bạn cũng không cần phải gửi 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 lại thông tin đó. Nếu bạn phải ghi nhật ký, hãy bảo vệ dữ liệu đó thật 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 cung cấp các đề xuất theo ngữ cảnh cụ thể khi người dùng nhập. Đôi khi, các đề xuất này dựa trên các nội dung 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 phiên trước đó. Người dùng có thể không muốn các tìm kiếm trước đó được tiết lộ cho những người dùng thiết bị khác. Nếu ứng dụng của bạn cung cấp đề xuất có thể hiển thị các hoạt động tìm kiếm trước đó, hãy triển khai một cách để người dùng xoá nhật ký tìm kiếm. Nếu đang sử dụng
SearchRecentSuggestions
, bạn có thể gọi phương thứcclearHistory()
. Nếu đang triển khai các đề xuất tuỳ chỉnh, bạn cần cung cấp 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.