Android 8.0 bổ sung khả năng tìm kiếm mở rộng cho trình đơn Settings (Cài đặt). Chiến dịch này tài liệu mô tả cách thêm một chế độ cài đặt và đảm bảo chế độ cài đặt đó được lập chỉ mục đúng cách cho Tìm kiếm phần cài đặt.
Tạo các chế độ cài đặt có thể lập chỉ mục
Mỗi mảnh Cài đặt cần được lập chỉ mục sẽ triển khai
Indexable
VÀ yêu cầu trang web
trường:
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER
Sau khi bạn thiết lập mảnh để lập chỉ mục, hãy thêm mảnh đó vào
Đã tìm thấy SearchIndexableResources
lúc:
packages/apps/Settings/src/com/android/settings/search/SearchIndexableResources.java
Phương thức không bắt buộc
Giao diện SearchIndexProvider
này có 4 tuỳ chọn
.
getXmlResourcesToIndex
- Ghi đè giá trị này nếu nội dung mảnh của bạn là từ:
preference xml
- Trả về một lựa chọn ưu tiên XML dưới dạng danh sách sẽ được lập chỉ mục.
Ví dụ về tài nguyên XML:
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, boolean enabled) { ArrayList<SearchIndexableResource> result = new ArrayList<SearchIndexableResource>(); SearchIndexableResource sir = new SearchIndexableResource(context); sir.xmlResId = R.xml.display_settings; result.add(sir); return result; }
getRawDataToIndex
- Ghi đè giá trị này nếu nội dung mảnh của bạn KHÔNG phải từ:
preference xml
- Trả về danh sách Dữ liệu thô (
SearchIndexableRaw
) sẽ được lập chỉ mục.
Ví dụ về dữ liệu thô:
public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) { final List<SearchIndexableRaw> result = new ArrayList<>(); final Resources res = context.getResources(); // Add fragment title SearchIndexableRaw data = new SearchIndexableRaw(context); data.title = res.getString(R.string.wifi_settings); data.screenTitle = res.getString(R.string.wifi_settings); data.keywords = res.getString(R.string.keywords_wifi); data.key = DATA_KEY_REFERENCE; result.add(data); return result; }
getNonIndexableKeys
- Nếu mảnh là
DashboardFragment
, bạn hiếm khi cần ghi đè mục này. - Trả về danh sách các khoá tương ứng với kết quả không xuất hiện
cho người dùng, thiết bị, cấu hình cụ thể, v.v. Các khoá được cung cấp ở đây phải
khớp với trường KEY trong
SearchIndexableResource
vàSearchIndexableRaw
. - Ví dụ: Sử dụng dữ liệu sẽ không hiển thị cho người dùng chưa từng sử dụng Thẻ SIM trong thiết bị của họ.
Ví dụ về khoá không lập chỉ mục được:
public List<String> getNonIndexableKeys(Context context) { final List<String> keys = super.getNonIndexableKeys(context); if (!checkIntentAction(context, "android.settings.TERMS")) { keys.add(KEY_TERMS); } if (!checkIntentAction(context, "android.settings.LICENSE")) { keys.add(KEY_LICENSE); } if (!checkIntentAction(context, "android.settings.COPYRIGHT")) { keys.add(KEY_COPYRIGHT); } if (!checkIntentAction(context, "android.settings.WEBVIEW_LICENSE")) { keys.add(KEY_WEBVIEW_LICENSE); } return keys; }
getPreferenceControllers
Trả về danh sách trình điều khiển lựa chọn ưu tiên liên kết với mảnh này. Danh sách này dùng để tạo kết quả cùng dòng, cập nhật các tài sản không lập chỉ mục được, v.v.
Do đó, mọi thông tin mà bạn muốn hiển thị trong tìm kiếm phải được đưa vào trong
getXmlResourcesToIndex
hoặc getRawDataToIndex
.
Thêm từ khóa cho cài đặt của bạn
Để đảm bảo chế độ cài đặt có thể tìm kiếm dễ dàng, hãy thêm từ khoá liên quan đến cài đặt mà người dùng có thể sử dụng để tìm kiếm cài đặt.
Những điều cần xem xét khi thêm từ khoá:
- Từ khoá là một danh sách các từ mà người dùng không nhất thiết nhìn thấy nhưng có thể trở thành một phần của mô hình tư duy về cách bối cảnh hoạt động.
- Đây là những từ mà người dùng có thể nhập để chuyển đến chế độ cài đặt của bạn.
- Các từ này có thể là từ đồng nghĩa hoặc có thể sử dụng bất kỳ từ nào có liên quan đến chế độ cài đặt này.
- Ví dụ: "tắt tiếng" có thể được dùng để tìm chế độ cài đặt Âm lượng.
Tránh trùng lặp
Nếu bạn đang chặn trang cài đặt vô điều kiện, hãy xoá hoạt động lập chỉ mục của trang gốc để tránh trùng lặp kết quả.
- Tìm
PreferenceFragment
của trang mà bạn đang chặn. - Xoá
SearchIndexProvider
.
Xác nhận kết quả
Cách kiểm tra khả năng tìm kiếm của một chế độ cài đặt mới:
- Cài đặt phiên bản O gần đây trên thiết bị.
- Lập chỉ mục lại cơ sở dữ liệu bằng cách chọn: Cài đặt > Ứng dụng và Thông báo > Thông tin ứng dụng > Cài đặt > Bộ nhớ > Xoá dữ liệu
- Xác minh rằng chế độ cài đặt mục tiêu xuất hiện trong kết quả tìm kiếm.
Việc tìm kiếm tiền tố cho tiêu đề của một chế độ cài đặt sẽ khớp với chế độ cài đặt đó.
Bạn có thể chạy các phép kiểm thử robolectric này để xác thực việc triển khai quy trình này
tính năng:
packages/apps/Settings/tests/robotests/src/com/android/settings/search
Mục tiêu bản dựng là: RunSettingsRoboTests