Arama yapılandırması

Aramayı Android sisteminin yardımıyla uygulamak, yani arama bir etkinliği sorgular ve arama önerileri sağlar. Uygulamanızın, bir arama sorgusu XML dosyası biçiminde bir yapılandırma dosyası biçimindedir.

Bu sayfada, arama yapılandırma dosyası söz dizimi ve kullanımı açısından açıklanmaktadır. Daha fazla uygulamanız için arama özelliklerini nasıl uygulayacağınızla ilgili daha fazla bilgi için bkz. Arama arayüzü oluşturun.

dosya konumu:
res/xml/filename.xml

Android, kaynak kimliği olarak dosya adını kullanır.
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="string resource"
    android:hint="string resource"
    android:searchMode=["queryRewriteFromData" | "queryRewriteFromText"]
    android:searchButtonText="string resource"
    android:inputType="inputType"
    android:imeOptions="imeOptions"
    android:searchSuggestAuthority="string"
    android:searchSuggestPath="string"
    android:searchSuggestSelection="string"
    android:searchSuggestIntentAction="string"
    android:searchSuggestIntentData="string"
    android:searchSuggestThreshold="int"
    android:includeInGlobalSearch=["true" | "false"]
    android:searchSettingsDescription="string resource"
    android:queryAfterZeroResults=["true" | "false"]
    android:voiceSearchMode=["showVoiceSearchButton" | "launchWebSearch" | "launchRecognizer"]
    android:voiceLanguageModel=["free-form" | "web_search"]
    android:voicePromptText="string resource"
    android:voiceLanguage="string"
    android:voiceMaxResults="int"
    >
    <actionkey
        android:keycode="KEYCODE"
        android:queryActionMsg="string"
        android:suggestActionMsg="string"
        android:suggestActionMsgColumn="string" />
</searchable>
öğeler:
<searchable>
Android sisteminin destekli arama sağlamak için kullandığı tüm arama yapılandırmalarını tanımlar.

Özellikler:

android:label
Dize kaynağı. (Zorunlu.) Uygulamanızın adı. Bu değer, öğenizin android:label özelliğine uygulanan ad <activity> veya <application> manifest öğesi. Bu etiket, yalnızca şu ayarı yaptığınızda kullanıcı tarafından görülebilir: android:includeInGlobalSearch - "true"; bu durumda bu etiket kullanılır uygulamanızı sistemin arama ayarlarında aranabilir öğe olarak tanımlamasını sağlar.
android:hint
Dize kaynağı. (Önerilir.) Oluşturulduğunda arama metni alanında metin girilmedi. Hangi içeriğin aranabileceği konusunda kullanıcıya ipucu verir. Tutarlılık için diğer Android uygulamalarıyla android:hint dizesini "Arama Ağı" olarak biçimlendirin <içerik-veya-ürün>". Örneğin, "Şarkı ve sanatçı arayın" veya "YouTube'da ara".
android:searchMode
Anahtar kelime. Arama sunumunu kontrol eden ek modlar ayarlar. Uygun modlar, özel bir öneri alındığında sorgu metninin nasıl yeniden yazılması gerektiğini tanımlar. odaklanacağız. Aşağıdaki mod değerleri kabul edilir:
DeğerAçıklama
"queryRewriteFromData" Şu değeri kullanın: SUGGEST_COLUMN_INTENT_DATA. sütununu kullanabilirsiniz. Bu yalnızca SUGGEST_COLUMN_INTENT_DATA, kullanıcı denetimi ve düzenlemesi için uygundur, HTTP URI'leri buna dahildir.
"queryRewriteFromText" Şu değeri kullanın: SUGGEST_COLUMN_TEXT_1. sütununu kullanabilirsiniz.

Daha fazla bilgi için sorgu metnini Özel arama önerileri ekleyin.

android:searchButtonText
Dize kaynağı. Aramayı yürüten düğmede gösterilecek metin. Ölçüt Arama simgesi (büyüteç) görüntülenir. Bu simge, kullanıcının uluslararası hale getirme sürecidir. Bu nedenle, davranış aşağıdaki gibi olmadığı sürece düğmeyi değiştirmek için bu özelliği kullanmayın: arama dışındaki bir şey (web tarayıcısındaki URL isteği gibi).
android:inputType
Anahtar kelime. Kullanılacak giriş yönteminin türünü (ör. yumuşak geçiş türü) tanımlar klavye kısayollarını da kullanabilirsiniz. Serbest biçimli metnin beklendiği çoğu arama için bu özelliğe ihtiyacınız yoktur. Aşağıdakilerin listesi için bkz. inputType değerleri girin.
android:imeOptions
Anahtar kelime. Giriş yöntemi için ek seçenekler sağlar. Çoğu arama için beklenen serbest biçimli metin için bu özelliğe ihtiyacınız yoktur. Varsayılan IME actionSearch, "arama"yı sağlar yerine bir satır başı karakteri klavyeyi kullanın. Bkz. imeOptions değerini girin.

Arama önerisi özellikleri

Arama önerileri oluşturmak için bir içerik sağlayıcı tanımlarsanız, İçerik sağlayıcıyla iletişimi yapılandıran ek özellikler. Arama özelliği sunulurken önerilerinde aşağıdaki <searchable> özelliklerinden bazılarına ihtiyacınız vardır:


android:searchSuggestAuthority
Dize. (Arama önerileri sağlamak için gereklidir.) Bu değer, android:authorities içindeki yetkili dizesi özelliğini kullanın.<provider>
android:searchSuggestPath
Dize. Bu yol, önerilerin bir kısmı olarak kullanılır Uri sorgusu ön ekinden sonra ve daha çok bilgi edindiniz. Bu yalnızca tek bir içerik sağlayıcı, farklı türde öneriler (örneğin, farklı ve e-posta aldığınızda öneri sorgularını netleştirmek için bir yönteme gerekir.
android:searchSuggestSelection
Dize. Bu değer, sorgu fonksiyonunu selection parametresi olarak kullanıyor. Genellikle bu bir WHERE ifadesidir ve her sorgu için yer tutucu olarak tek bir soru işareti içermelidir. kullanıcı tarafından girilen gerçek sorgu dizesi (örneğin, "query=?"). Ancak, selectionArgs parametresini alıp selection parametresini yoksayabilirsiniz.
android:searchSuggestIntentAction
Dize. Bir kullanıcı aşağıdaki işlemleri gerçekleştirdiğinde kullanılacak varsayılan intent işlemi "android.intent.action.VIEW" gibi bir özel arama önerisine dokunduğunda. Bu değer, SUGGEST_COLUMN_INTENT_ACTION. sütununda, değer, Kullanıcı dokunduğunda Intent öneriyorum.
android:searchSuggestIntentData
Dize. Bir kullanıcı aşağıdaki durumlarda kullanılacak varsayılan intent verileri: özel bir arama önerisine dokunduğunda. Seçilen öneri tarafından geçersiz kılınmazsa SUGGEST_COLUMN_INTENT_DATA. sütunu. Bu değer, Kullanıcı dokunduğunda Intent öneriyorum.
android:searchSuggestThreshold
Tamsayı. Karakter sayısını göstermek için bir öneri aramasını tetikler. Bu yalnızca, sistemin her tür içerik sağlayıcı tarafından görüntülenebilir. Varsayılan değer 0'dır.

Arama önerileriyle ilgili yukarıdaki özellikler hakkında daha fazla bilgi için dokümanlara bakın. özel arama önerileri eklemek ve özel öneriler ekleyebilirsiniz.

Hızlı Arama Kutusu özellikleri

Özel arama önerilerinizi Çabuk Arama Kutusu'nda kullanılabilir hale getirmek için aşağıdaki <searchable> özellikleri:


android:includeInGlobalSearch
Boole. ( Hızlı Arama Kutusu'nu tıklayın.) Önerilerinizin gösterilmesini istiyorsanız "true" olarak ayarlayın genel olarak erişilebilen Hızlı Arama Kutusu'na eklenmiştir. Kullanıcı önce uygulamanızı sistem arama ayarlarında aranabilir öğe olarak önerileriniz Hızlı Arama Kutusu'nda görünür.
android:searchSettingsDescription
Dize kaynağı. Arama önerilerinin kısa bir açıklamasını sunar. Hızlı Arama Kutusu'na sağlarsınız; bu bilgi, arama sorgunuzun aranabilir öğeler girişinde görüntülenir bir uygulamadır. Açıklamanızda, aranabilir içerik kısa ve öz bir şekilde açıklanmalıdır. Örneğin, örnek: "Sanatçılar, albümler ve parçalar" müzik uygulaması veya "Kayıtlı notlar" - not defteri uygulamasıdır.
android:queryAfterZeroResults
Boole. İçerik sağlayıcınızın olmasını istiyorsanız "true" olarak ayarlayın daha önce sıfır sonuç döndüren sorguların üst kümeleri için çağrılır. Örneğin, içerik sağlayıcınız "bo" için sıfır sonuç döndürdüğünde, "ali" için tekrar sorgulanması gerekir. Eğer "false" olarak ayarlanırsa üst kümeler tek bir oturum için yoksayılır: "ali" bir yeniden sorgu çağırmaz. Bu yalnızca arama iletişim kutusunun veya arama etkinliği görebilirsiniz. Arama iletişim kutusu veya etkinliği yeniden açıldığında "bo" içerik sağlayıcınızı yeniden sorgular. False varsayılan değerdir.

Sesli arama özellikleri

Sesli aramayı etkinleştirmek için şunlardan bazılarına ihtiyacınız vardır: aşağıdaki <searchable> özellikleri:


android:voiceSearchMode
Anahtar kelime. (Sesli arama özelliklerini sağlamak için gereklidir.) Belirli bir sesli arama moduyla sesli aramayı etkinleştirir. Sesli arama cihaz tarafından sağlanamayabilir. Bu durumda bu işaretler etkisi yoktur. Aşağıdaki mod değerleri kabul edilir:
DeğerAçıklama
"showVoiceSearchButton" Cihazda sesli arama kullanılabiliyorsa bir sesli arama düğmesi görüntüler. Ayarlanırsa "launchWebSearch" veya "launchRecognizer" de ayarlanmalıdır. dikey çizgi (|) karakteriyle ayrılır.
"launchWebSearch" Sesli arama düğmesi, kullanıcıyı doğrudan yerleşik bir sesli web arama etkinliğine dönüştürme. Çoğu uygulama bu işareti kullanmaz, çünkü kullanıcıyı, aramanın çağrıldığı etkinlikten çıkarır.
"launchRecognizer" Sesli arama düğmesi, yerleşik bir ses kaydı etkinliğine yönlendirebilirsiniz. Bu etkinlik kullanıcının konuşmasını ister, konuşulan metni metne dönüştürür ve üretilen metni iletir. sorgu metnini kullanıcı tarafından kullanıcı arayüzü üzerinden arama yapıp arama düğmesine dokundu.
android:voiceLanguageModel
Anahtar kelime. Her bir görev için geçerli olan ses tanıma sistemi tarafından kullanılmalıdır. Aşağıdaki değerler kabul edilir:
DeğerAçıklama
"free_form" Sorguları dikte etmek için serbest biçimli konuşma tanıma özelliğini kullanın. Bu birincil olarak İngilizce için optimize edilmiştir. Bu, varsayılan ayardır.
"web_search" Arama benzeri daha kısa ifadeler için web arama terimi tanımayı kullanın. Bu "free_form" taneden fazla dilde kullanılabilir.

Görüntüleyin Daha fazlası için EXTRA_LANGUAGE_MODEL ekleyebilirsiniz.

android:voicePromptText
Dize kaynağı. Ses girişi iletişim kutusunda gösterilecek ek mesaj.
android:voiceLanguage
Dize. Beklenen konuşma dili, dize değeri olarak ifade edilir: Locale içindeki bir sabit değer, örneğin Almanca için "de" veya Fransızca için "fr". Bu yalnızca farklıysa gereklidir Locale.getDefault() arasından seçim yapabilirsiniz.
android:voiceMaxResults
Tamsayı. Döndürülecek maksimum sonuç sayısını ayarlar, “en iyi” (her zaman ACTION_SEARCH. intent'in birincil sorgusu. 1 veya daha büyük olmalıdır. Tekliflerinizi otomatikleştirmek ve optimize etmek için EXTRA_RESULTS. amaçlanan sonuçları elde etmektir. Sağlanmazsa tanıyıcı, kaç sonucun döndürüleceğini seçer.
<actionkey>
Arama işlemi için bir cihaz tuşu ve davranışı tanımlar. Arama işlemi, cihazdaki bir düğmeye dokunduğunda, geçerli sorguya veya odak noktasına öneririz. Örneğin, Kişiler uygulaması bir telefon görüşmesini başlatmak için ARA düğmesine dokunulduğunda, o sırada odaklanılan kişi önerisine çağrı.

Bazı işlem tuşları her cihazda kullanılamaz ve bu cihazda tüm tuşlar geçersiz kılınamaz sağlar. Örneğin, "Ev" anahtar geçersiz kılınamaz ve her zaman ana sayfaya dönmelidir tıklayın. Ayrıca, arama sorgusu yazarken gerekli olan bir tuşa ilişkin işlem tuşu tanımlamadığınızdan emin olun emin olun. Böylece, kullanılabilir ve makul işlem tuşları arama düğmesi ve menü ile sınırlanır düğmesini tıklayın.

Anahtarı veandroid:keycode diğer üç özelliği kullanmak isteyebilirsiniz.

Özellikler:

android:keycode
Dize. (Zorunlu.) Şuradan bir anahtar kodu: Temsil eden KeyEvent yanıt vermek istediğiniz işlem tuşu (örneğin, "KEYCODE_CALL"). Bu parametresi ACTION_SEARCH. amaca aktarılan bir anahtar kelimedir. Anahtar kodunu incelemek için getIntExtra(SearchManager.ACTION_KEY) Bir arama işlemi için tüm tuşlar desteklenmez; çünkü birçoğu yazma amacıyla kullanılır. veya sistem işlevleri.
android:queryActionMsg
Dize. sorgu metni giriyor. Bu, ACTION_SEARCH. amacına hizmet eder. Dizeyi incelemek için getStringExtra(SearchManager.ACTION_MSG)
android:suggestActionMsg
Dize. Ekran başındayken işlem tuşuna basıldığında gönderilecek net bir şekilde ulaşabilirsiniz. Bu, sistemin öneri için tanımladığınız işlemi kullanarak. dize, kullan getStringExtra(SearchManager.ACTION_MSG) Bu seçeneği yalnızca tüm önerileriniz bu işlem tuşunu destekliyorsa kullanılmalıdır. Tüm öneriler aynı işlem tuşunu işleyebilir, ardından bunun yerine aşağıdakileri kullanmanız gerekir: android:suggestActionMsgColumn özelliği için de kullanılmaktadır.
android:suggestActionMsgColumn
Dize. İçerik sağlayıcınızda, kullanıcı işlem tuşuna bastığında gönderilecek olan işlem mesajı bir öneriye odaklanılır. Bu özellik, bir cihazdaki işlem tuşunu kontrol etmenizi bunu her öneride ayrı ayrı yapabilirsiniz. Çünkü Tümü için işlem mesajını tanımlamak üzere android:suggestActionMsg özelliği önerilerinde, içerik sağlayıcınızdaki her giriş kendi işlem mesajını sağlar.

Öncelikle, içerik sağlayıcınızda sağlanacak her öneri için bir sütun tanımlamanız gerekir bir işlem mesajı gönderin, ardından bu özellikte söz konusu sütunun adını sağlayın. Sistem öneri imlecinize bakar ve işleminizi seçmek için burada sağlanan dizeyi kullanır mesaj sütununu, ardından imleçten işlem mesajı dizesini seçer. Bu dize daha önce girdiğiniz işlemi kullanarak, sistemin aranabilir etkinliğinize ilettiği amaca eklenir. tanımlamayı öğrendiniz. Dizeyi incelemek için getStringExtra(SearchManager.ACTION_MSG) Seçilen öneri için veri yoksa işlem tuşu yoksayılır.

örnek:
XML dosyası res/xml/searchable.xml itibarıyla kaydedildi:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/search_label"
    android:hint="@string/search_hint"
    android:searchSuggestAuthority="dictionary"
    android:searchSuggestIntentAction="android.intent.action.VIEW"
    android:includeInGlobalSearch="true"
    android:searchSettingsDescription="@string/settings_description" >
</searchable>