البحث الشامل

يضيف Android 8.0 إمكانات بحث موسّعة لقائمة الإعدادات. هذا النمط كيفية إضافة إعداد والتأكد من فهرسته بشكل صحيح البحث في الإعدادات

إنشاء إعدادات قابلة للفهرسة

ينفذ كل جزء من "الإعدادات" يجب فهرسته Indexableالواجهة، وتتطلّب السمة الثابتة الحقل:

public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER

بعد إعداد الجزء للفهرسة، أضِفه إلى تم العثور على SearchIndexableResources في:
packages/apps/Settings/src/com/android/settings/search/SearchIndexableResources.java

الطرق الاختيارية

تحتوي هذه الواجهة SearchIndexProviderعلى أربع إضافات اختيارية الطرق.

أمر getXmlResourcesToIndex

  • يمكنك إلغاء هذا الخيار إذا كان محتوى الجزء من: preference xml
  • تعرض تفضيل XML كقائمة لتتم فهرستها.

مثال على موارد 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

  • يمكنك إلغاء هذا إذا كان محتوى الجزء غير مأخوذ من: preference xml
  • تعرض قائمة بالبيانات الأولية (SearchIndexableRaw) لتتم فهرستها.

مثال على البيانات الأولية:

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

الحصول على مفاتيح غير قابلة للفهرسة

  • إذا كان الجزء هو DashboardFragment، لن تحتاج إلى إجراء ذلك إلا نادرًا تجاوز هذا.
  • لعرض قائمة بالمفاتيح التي تتجاوب مع النتائج التي ينبغي ألا تظهر للمستخدم أو الجهاز أو الإعدادات أو ما إلى ذلك.ينبغي أن تكون المفاتيح المقدمة هنا تتطابق مع الحقل KEY في SearchIndexableResource SearchIndexableRaw
  • على سبيل المثال: ينبغي ألا يظهر استخدام البيانات للمستخدمين الذين لم يسبق لهم شريحة SIM في أجهزتهم.

مثال على المفاتيح غير القابلة للفهرسة:

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

الحصول على عناصر التحكّم في الإعدادات المفضّلة

تعرض قائمة بوحدات التحكم في الإعدادات المفضّلة المرتبطة بهذا الجزء. تُستخدم هذه القائمة لإنشاء نتائج مضمّنة وتعديل العناصر غير القابلة للفهرسة وما إلى ذلك.

وبالتالي، يجب تضمين كل ما تريده في البحث في getXmlResourcesToIndex أو getRawDataToIndex

إضافة كلمات رئيسية لإعداداتك

لضمان سهولة البحث عن أحد الإعدادات، أضف كلمات رئيسية ذات صلة بـ والذي قد يستخدمه المستخدم للبحث عن الإعداد.

أمور يجب مراعاتها عند إضافة كلمات رئيسية:

  • الكلمات الرئيسية هي قائمة من الكلمات التي لا يراها المستخدم بالضرورة ولكن قد جزءًا من نموذجهم العقلي لكيفية عمل الوضع.
  • هذه هي الكلمات التي قد يكتبها المستخدم للوصول إلى الإعداد.
  • ويمكن أن تكون هذه الكلمات مرادفة أو أي كلمات مرتبطة بالإعداد.
  • على سبيل المثال، "كتم الصوت" للعثور على إعداد مستوى الصوت.

تجنُّب التكرار

إذا كنت تحظر صفحة إعدادات بدون أي شروط، فأزل فهرسة الصفحة الأصلية لتجنب تكرار النتائج.

  1. ابحث عن PreferenceFragment للصفحة التي تريد منعها.
  2. أزِل SearchIndexProvider.

التحقُّق

لاختبار إمكانية البحث عن إعداد جديد:

  1. ثبِّت إصدارًا حديثًا من O على الجهاز.
  2. أعِد فهرسة قاعدة البيانات من خلال اختيار:
  3. الإعدادات > التطبيقات الإشعارات > معلومات التطبيقات > الإعدادات > التخزين > محو البيانات
  4. تحقَّق من ظهور إعدادات الهدف في البحث.
    سيؤدي البحث عن بادئة لعنوان الإعداد إلى مطابقته.

ويمكن إجراء هذه الاختبارات للتحقّق من صحة تنفيذ هذا الإجراء. الميزة:
packages/apps/Settings/tests/robotests/src/com/android/settings/search

هدف الإصدار هو: RunSettingsRoboTests