Android arama iletişim kutusunu veya arama widget'ını kullanırken şunları sağlayabilirsiniz: uygulamanızdaki verilerden oluşturulan özel arama önerileri. Örneğin, uygulamanız bir sözlükse, sözlükte aldığınız kelime öbeklerini kullanıcı girmeyi tamamlamadan önce arama alanına girilen metinle eşleşmelidir daha fazla bilgi edineceksiniz. Bu öneriler değerlidir çünkü ve buna anında erişim sağlar. Şekil 1'de bir örnek gösterilmiştir arama iletişim kutusu gösterilir.
Özel öneriler sunduğunuzda bunları Google Haberler'de erişimi sağlayan hızlı Arama Kutusu, içeriğinize Google uygulamasını indirin.
Özel öneriler eklemeden önce Android arama iletişim kutusunu veya Arama widget'ını kullanabilirsiniz. Bkz. Oluşturma arama arayüzü ve İçerik sağlayıcı ile karşılaştırın.
Temel bilgiler
![](https://developer.android.com/static/images/search/search-suggest-custom.png?authuser=9&hl=tr)
Şekil 1. Şunları içeren arama iletişim kutusunun ekran görüntüsü özel arama önerileri.
Kullanıcı özel bir öneri seçtiğinde sistem,
Intent
-
arama yapılabilir etkinlik.
ACTION_SEARCH
.
bu işlemi gerçekleştirdikten sonra, raporla
ilgili özel önerilerinizi
ACTION_VIEW
veya
ve aynı zamanda işletmenizle alakalı verileri de
seçilen öneri. Sözlük örneğinde, kullanıcı bir
öneride bulunmak yerine, uygulama hemen ilgili kelimenin tanımını açabilir
.
Özel öneriler sunmak için aşağıdaki adımları uygulayın:
- Aşağıda açıklandığı gibi temel bir aranabilir etkinlik uygulama Arama arayüzü oluşturun.
- Aranabilir yapılandırmayı, içerik hakkındaki bilgilerle değiştir sağlayıcı olabilir.
- Örneğin bir tablo
SQLiteDatabase
, ve tabloyu gerekli sütunlarla biçimlendirin. - İçerik oluşturma sağlayıcı olarak belirlemeniz gerekir. manifest dosyanıza ekleyin.
- Kullanıcı bir seçim yaptığında gönderilecek
Intent
türünü tanımlayın bir öneride bulunacağız.
Android sisteminin arama iletişim kutusunu gösterdiği gibi, arama önerileri. Sistemin gönderebileceği bir içerik sağlayıcıya önerilerinizi alabilirsiniz. Okunanlar İçerik sağlayıcılar içerik sağlayıcı oluşturmayı öğrenin.
Sistem, etkinliğinizin aranabilir olduğunu tespit ettiğinde ve önerilerinde bulunduğunda, kullanıcı bir arama sorgusu sorgu:
- Sistem, arama sorgusu metnini alır. Yani, girilen metin şimdiye kadar işlem yapıp içerik sağlayıcınıza öneriler.
- İçerik sağlayıcınız şunu döndürür:
Cursor
. arama sorgusuyla alakalı tüm önerileri işaret eden metin. - Sistem, Google tarafından sağlanan önerilerin bir listesini
Cursor
Özel öneriler görüntülendikten sonra aşağıdakiler gerçekleşebilir:
- Kullanıcı başka bir harf girerse veya sorguyu herhangi bir şekilde değiştirirse ve öneri listesi uygun şekilde güncellenir.
- Kullanıcı aramayı yürütürse öneriler yoksayılır ve
arama, normal
ACTION_SEARCH
intent. - Kullanıcı bir öneri seçerse, aranabilir sayfanıza bir amaç gönderilir. etkinliği, uygulamanızın açılabilmesi için özel bir işlem ve özel veriler emin olmanız gerekir.
Aranabilir yapılandırmayı değiştirme
Özel öneriler için destek eklemek istiyorsanız
android:searchSuggestAuthority
özelliğini
Aranabilir yapılandırma dosyanızdaki <searchable>
öğesi,
aşağıdaki örnekte gösterildiği gibi:
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_label" android:hint="@string/search_hint" android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"> </searchable>
Oluşturduğunuz niyetin türüne bağlı olarak ek özelliklere her bir öneriye ekleyin ve sorguları içeriğinize nasıl biçimlendirmek istediğinizi sağlar. İsteğe bağlı diğer özellikler aşağıda açıklanmıştır. bölümlerini kontrol edin.
İçerik sağlayıcı oluşturun
Özel önerilere yönelik bir içerik sağlayıcı oluşturmak için öncelikle
İçerik sağlayıcılar
içerik sağlayıcı oluşturmayı öğrenin. Özelleştirilmiş
diğer içerik sağlayıcılara benzer. Ancak her bir sorgu için
Cursor
içindeki ilgili satır,
sistemin anladığı ve biçimlendirmek için kullandığı belirli sütunlara yer verme
öneriler.
Kullanıcı, arama iletişim kutusuna veya arama widget'ına metin girdiğinde, sistem
şunu arayarak içerik sağlayıcınızı öneri olarak arar:
query()
.
tıklayın. query()
uygulamanızda,
içerik sağlayıcınızın öneri verilerinizde arama yapması ve
İyi olduğunu belirlediği satırları işaret eden Cursor
öneriler.
Özel öneriler için içerik sağlayıcı oluşturmayla ilgili ayrıntılar: ele alacağız:
- Öneri sorgusunu işleme
- Sistem, istekleri içerik sağlayıcınıza nasıl gönderir ve talepleri nasıl ele alır? gerekir.
- Öneri tablosu oluşturma
- Sistemin
Her sorguda
Cursor
sonuç döndürüldü.
Öneri sorgusunu işleme
Sistem, içerik sağlayıcınızdan öneri istediğinde
içerik sağlayıcınızın query()
yöntemi. Bu yöntemi şunlar için uygulayın:
öneri verilerinizde arama yapıp bir Cursor
alakalı olduğunu düşündüğünüz önerileri görebilirsiniz.
Sistemin ilettiği parametrelerin özetini burada bulabilirsiniz.
query()
yöntemi; şu sırayla listelenir:
uri
Her zaman içerik
Uri
, biçimlendirme: şöyle olur:content://your.authority/optional.suggest.path/
SUGGEST_URI_PATH_QUERY
Varsayılan davranış, sistemin bu URI'yı iletmesi ve sorguyu eklemesidir şu mesajı gönderin:
content://your.authority/optional.suggest.path/
SUGGEST_URI_PATH_QUERY
/puppiesUçtaki sorgu metni URI kodlama kuralları kullanılarak kodlandığından, kodu çözmeniz gerekir.
optional.suggest.path
kısmı yalnızca içinde arama yapılabilir yapılandırma dosyanızdaandroid:searchSuggestPath
özelliği için de geçerlidir. Yalnızca Aranabilir birden fazla etkinlik için aynı içerik sağlayıcıyı kullanmanız gerekir. Eğer Bu durumda, öneri sorgusunun kaynağını netleştirin.projection
- Her zaman null.
selection
android:searchSuggestSelection
özelliğini kullanabilirsiniz. Özelliği görmüyorsanız nullandroid:searchSuggestSelection
özelliğini tanımlayın. İlgili içeriği oluşturmak için kullanılan Bu konu aşağıdaki bölümde daha ayrıntılı olarak ele alınmaktadır.selectionArgs
- Aşağıdaki koşulda arama sorgusunu, dizinin ilk ve tek öğesi olarak içerir:
android:searchSuggestSelection
özelliğini yapılandırabilirsiniz. Herhangi birandroid:searchSuggestSelection
ise bu parametre null olur. Aşağıdaki bölümde bu konu daha ayrıntılı olarak ele alınmaktadır.sortOrder
- Her zaman null.
Sistem, arama sorgusu metnini size iki şekilde gönderebilir. Varsayılan yöntem
öğesine iletilen içerik URI'sinin son yolu olarak eklenmesine olanak tanır.
uri
parametresinden yararlanın. Ancak,
aranabilir yapılandırmanızın android:searchSuggestSelection
özelliğine sahip olursa, sorgu metni bunun yerine
selectionArgs
dize dizisi. Bu iki seçenek,
tıklayın.
Sorguyu URI'da alma
Varsayılan olarak sorgu, uri
son segmenti olarak eklenir
parametresi: Uri
nesnesi. Sorgu metnini
durum, kullanım
getLastPathSegment()
,
aşağıdaki örnekte gösterildiği gibi:
Kotlin
val query: String = uri.lastPathSegment.toLowerCase()
Java
String query = uri.getLastPathSegment().toLowerCase();
Bu işlem, Uri
işlevinin sorgu olan son segmentini döndürür.
kullanıcı tarafından girilen metin.
Seçim bağımsız değişkenlerindeki sorguyu alın
Sizin için URI'yı kullanmak yerine daha mantıklı olabilir.
query()
yöntemini kullanmak için gereken her şeyi almak
yardımcı olmak için, selection
ve
selectionArgs
parametrelerini uygun değerleri taşımak için kullanırsınız. Burada
destek kaydınıza android:searchSuggestSelection
özelliğini ekleyin.
SQLite seçim dizenizle aranabilir bir yapılandırma sunar. Seçilenler
dizesinin her yerine yer tutucu olarak bir soru işareti (?) ekleyin
anlamına gelir. Sistem, query()
öğesini seçim dizesiyle şu şekilde çağırır:
İlk öğe olarak selection
parametresi ve arama sorgusu
selectionArgs
dizisinde bulunur.
Örneğin, bir iş kırılım yapısı oluşturmak için
Tam metin oluşturmak için android:searchSuggestSelection
özelliği
arama ifadesi:
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_label" android:hint="@string/search_hint" android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider" android:searchSuggestIntentAction="android.intent.action.VIEW" android:searchSuggestSelection="word MATCH ?"> </searchable>
Bu yapılandırmada, query()
yönteminiz
selection
parametresini "word MATCH ?"
ve
selectionArgs
parametresini kullanın. Bunları
bir SQLite
query()
.
kullanılarak, bu fonksiyonlar yeniden
anlamına gelir. Soru işareti, sorgu metniyle değiştirilir. Eğer
öneri sorgularını bu şekilde aldığınızı ve sorguya joker karakterler eklemeniz gerektiğinde
selectionArgs
parametresine metin eklemek veya ön eki eklemek
bu değer tırnak içine alınır ve soru işaretinin yerine eklenir.
Yukarıdaki örnekte yer alan başka bir özellik de
android:searchSuggestIntentAction
, amaç işlemini tanımlar
gönderilir. Bu konu tartışılıyor
Beyan
önerileri bölümüne bakın.
Öneri tablosu oluşturma
Sisteme önerileri Cursor
ile döndürdüğünüzde
sistemi her satırda belirli sütunlar olmasını bekler. Mağazanızın
cihazdaki bir SQLite veritabanında, web üzerindeki bir veritabanında bulunan öneri verileriniz
cihazdaki ya da web'deki başka bir biçimde olması durumunda, önerileri satır
Cursor
ile sunun.
Sistem birkaç sütunu anlar, ancak bunlardan yalnızca ikisi gereklidir:
_ID
- Her öneri için benzersiz bir tam sayı satır kimliği. Sistem bunu gerektirir
önerileri
ListView
SUGGEST_COLUMN_TEXT_1
- Öneri olarak sunulan dize.
Aşağıdaki sütunların tümü isteğe bağlıdır. Bunların çoğu bu bölümde bulabilirsiniz.
SUGGEST_COLUMN_TEXT_2
- Dize
Cursor
metriğiniz bu sütunu içeriyorsa öneriler iki satırlık biçimde sunulur. Bu sütundaki dize birincil önerinin altında ikinci, daha küçük bir metin satırı olarak görüntülenir metin. İkincil metin olmadığını belirtmek için boş veya değer atanmamış olabilir. SUGGEST_COLUMN_ICON_1
- Çekilebilir bir kaynak, içerik veya dosya URI dizesidir. Eğer
Cursor
bu sütunu içeriyor ve tüm öneriler sağlanmış bir simge ve metin biçiminde, diğer tarafta ise çekilebilir bir simge bulunuyor. Bu bu satırda simge olmadığını belirtmek için boş veya sıfır olabilir. SUGGEST_COLUMN_ICON_2
- Çekilebilir bir kaynak, içerik veya dosya URI dizesidir. Eğer
Cursor
bu sütunu içeriyor ve tüm öneriler sağlanmış sağ tarafta simge içeren bir simge artı metin biçiminde. Bu özellik, bu satırda simge olmadığını belirtmek için null veya sıfır değerini kullanın. SUGGEST_COLUMN_INTENT_ACTION
- Amaç işlemi dizesi. Bu sütun mevcutsa ve
satır için burada tanımlanan işlem, önerinin
isteyebilirsiniz. Öğe sağlanmamışsa işlem,
Aranabilir öğelerinizdeki
android:searchSuggestIntentAction
alanı yapılandırma. İşleminiz tüm öneriler için aynıysa daha fazla işlemi belirtmek içinandroid:searchSuggestIntentAction
ve bu sütunu atlayın. SUGGEST_COLUMN_INTENT_DATA
- Veri URI'si dizesi. Bu sütun mevcutsa ve belirtilen
satırında, bu veriler önerinin amacını oluştururken kullanılır. Öğe
sağlanmazsa veriler web sitesinden alınmıştır.
Aranabilir öğelerinizdeki
android:searchSuggestIntentData
alanı yapılandırma. İki kaynak da sağlanmazsa niyetin veri alanı null. Verileriniz tüm öneriler için aynıysa veya sabit parça ve belirli bir kimlik kullanıldığında, bunu belirtmek daha verimli olur.android:searchSuggestIntentData
kullanın ve bunu atlayın sütununa girin. SUGGEST_COLUMN_INTENT_DATA_ID
- URI yolu dizesi. Bu sütun mevcutsa ve verilen
satır ve ardından "/" ve bu değer, amaçtaki veri alanına eklenir.
Bunu yalnızca
Aranabilir öğelerde
android:searchSuggestIntentData
özelliği yapılandırması uygun bir temel dizeye zaten ayarlanmış. SUGGEST_COLUMN_INTENT_EXTRA_DATA
- Rastgele veriler. Bu sütun mevcutsa ve belirli bir satırda değer içeriyorsa
bunlar, önerinin amacını oluştururken kullanılan ekstra verilerdir.
Sağlanmazsa niyetin ek veri alanı boş olur. Bu sütun,
Öneriler,
intent'in
EXTRA_DATA_KEY
. tuşuna basın. SUGGEST_COLUMN_QUERY
- Bu sütun mevcutsa ve bu öğe belirtilen satırda yer alıyorsa
önerinin sorgusunu oluştururken kullanılan veriler,
satın almada
QUERY
tuşuna basın. Öneri işlemiACTION_SEARCH
ise zorunludur. yoksa isteğe bağlıdır. SUGGEST_COLUMN_SHORTCUT_ID
- Yalnızca Hızlı Arama Kutusu için öneriler sağlanırken kullanılır. Bu sütun
bir arama önerisinin kısayol olarak depolanması gerekip gerekmediğini ve
olup olmaması gerektiğidir. Kısayollar genellikle kullanıcı
Hızlı Arama Kutusu'ndaki bir öneriye dokunur. Eksikse sonuç
bir kısayol kullanabilirsiniz. Ayarlandığı takdirde
SUGGEST_NEVER_MAKE_SHORTCUT
, sonuç kısayol olarak depolanmaz. Aksi takdirde, kısayol kimliği şunun için kullanılır: daha fazla bilgi edinmek içinSUGGEST_URI_PATH_SHORTCUT
SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING
- Yalnızca Hızlı Arama Kutusu için öneriler sağlanırken kullanılır. Bu sütun
simgesi yerine bir döner simgenin gösterilmesi gerektiğini belirtir
Bu önerinin kısayolu şuyken
SUGGEST_COLUMN_ICON_2
hızlı bir şekilde ekleyebilirsiniz.
Bu sütunların çoğu, aşağıdaki bölümlerde daha ayrıntılı olarak ele alınmaktadır.
Önerilerde bulunma isteğini beyan etme
Kullanıcı altında görüntülenen listeden bir öneri seçtiğinde
veya widget'ı isterseniz sistem, adresinize özel bir Intent
gönderir
arama yapılabilir etkinlik. Amaca yönelik işlemi ve verileri tanımlamanız gerekir.
Amaç işlemini tanımlayın
Özel öneriler için en yaygın intent işlemi
ACTION_VIEW
; bir öğeyi açmak istediğinizde
Örneğin, bir kelimenin tanımı, kişinin iletişim bilgileri veya web sayfası gibi.
Ancak intent işlemi başka herhangi bir işlem olabilir ve her biri için farklı olabilir.
öneririz.
Tüm önerilerin aynı intent işlemini kullanmasını isteyip istemediğinize bağlı olarak, işlemi iki şekilde tanımlayabilirsiniz:
- Şunun
android:searchSuggestIntentAction
özelliğini kullanın: tüm önerilerde işlemi tanımlamak üzere kullanabileceğiniz bir yapılandırma dosyasıdır. aşağıdaki örnekte gösterilmektedir:<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_label" android:hint="@string/search_hint" android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider" android:searchSuggestIntentAction="android.intent.action.VIEW" > </searchable>
- Şunu tanımlamak için
SUGGEST_COLUMN_INTENT_ACTION
sütununu kullanın: işlemi nasıl yapacağınızı belirleyin. Bunu yapmak için Öneriler tablonuzaSUGGEST_COLUMN_INTENT_ACTION
sütun ekleyin ve her öneri için kullanılacak eyleme (örneğin,"android.intent.action.VIEW"
.
Bu iki tekniği de birleştirebilirsiniz. Örneğin,
android:searchSuggestIntentAction
özelliği
varsayılan olarak tüm önerilerle kullanılır, ardından bazı öneriler için bu işlemi geçersiz
farklı bir işlem beyan ederek
SUGGEST_COLUMN_INTENT_ACTION
sütunu. Bir değer eklemezseniz
değeri: SUGGEST_COLUMN_INTENT_ACTION
sütununda,
android:searchSuggestIntentAction
özelliğinde sunulan değer:
kullanılır.
Amaç verilerini bildir
Kullanıcı bir öneri seçtiğinde, aranabilir etkinliğiniz
bir önceki slaytta belirtildiği gibi, tanımladığınız işlemle
bölümünü içerir, ama amacınız ayrıca etkinliğinizin
yardımcı olur. Özellikle, veri benzersiz olmalıdır
her öneri için SQLite tablonuzdaki önerinin satır kimliği gibi bir satır kimliği belirtin.
Niyet alındığında, ekli verileri
getData()
.
veya
getDataString()
.
Amaca dahil edilen verileri iki şekilde tanımlayabilirsiniz:
- Projedeki her öneri için
SUGGEST_COLUMN_INTENT_DATA
sütununa girin.Önerilerde her niyet için gerekli tüm veri bilgilerini sağlayın
SUGGEST_COLUMN_INTENT_DATA
sütununu ekleyerek ve daha sonra her satır için benzersiz verilerle dolduruyorum. Bu sütundaki veriler işareti, tam olarak bu sütunda tanımladığınız şekilde amaca eklenir. Şunları yapabilirsiniz: daha sonragetData()
ile alın veyagetDataString()
. - Bir veri URI'sini iki parçaya bölün: tüm öneriler için ortak bölüm
ve her öneriye özel bölümü ekleyin. Bu kısımları
Aranabilir anahtarın
android:searchSuggestintentData
özelliği veSUGGEST_COLUMN_INTENT_DATA_ID
sütununu içeren üç öneri tablosunu görürsünüz.Aşağıdaki örnekte, tüm öneriler için ortak Aranabilir anahtar kelimenizin
android:searchSuggestIntentData
özelliği yapılandırma:<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_label" android:hint="@string/search_hint" android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider" android:searchSuggestIntentAction="android.intent.action.VIEW" android:searchSuggestIntentData="content://com.example/datatable" > </searchable>
Her önerinin nihai yolunu (benzersiz kısmı) önerilerinizin
SUGGEST_COLUMN_INTENT_DATA_ID
sütunu tablosunu oluşturalım. Kullanıcı bir öneri seçtiğinde sistem, dizeyiandroid:searchSuggestIntentData
, eğik çizgi (/) ekler, ve ardından, Eksiksiz bir içerik oluşturmak içinSUGGEST_COLUMN_INTENT_DATA_ID
sütunu URI. Daha sonraUri
öğesini şuradan alabilirsiniz:getData()
.
Daha fazla veri ekleyin
Niyetinizle daha fazla bilgi ifade etmeniz gerekiyorsa başka bir bilgi ekleyebilirsiniz.
SUGGEST_COLUMN_INTENT_EXTRA_DATA
gibi bir sütun oluşturabilirsiniz.
öneriyle ilgili ek bilgileri saklamanızı öneririz. Bu sütuna kaydedilen veriler
işareti, intent'in ekstra paketinin EXTRA_DATA_KEY
içine yerleştirilir.
Amacı yerine getirin
Özel amaçlarla özel arama önerileri sağladıktan sonra,
kullanıcı bir anahtar kelime seçtiğinde bu amaçları ele almak için aranabilir
öneririz. Bu, ACTION_SEARCH
niyetini gösterir. Medya etkinliği ölçüm araçlarının
amaçlarınızı belirlerken
onCreate()
.
geri arama:
Kotlin
when(intent.action) { Intent.ACTION_SEARCH -> { // Handle the normal search query case. intent.getStringExtra(SearchManager.QUERY)?.also { query -> doSearch(query) } } Intent.ACTION_VIEW -> { // Handle a suggestions click, because the suggestions all use ACTION_VIEW. showResult(intent.data) } }
Java
Intent intent = getIntent(); if (Intent.ACTION_SEARCH.equals(intent.getAction())) { // Handle the normal search query case. String query = intent.getStringExtra(SearchManager.QUERY); doSearch(query); } else if (Intent.ACTION_VIEW.equals(intent.getAction())) { // Handle a suggestions click, because the suggestions all use ACTION_VIEW. Uri data = intent.getData(); showResult(data); }
Bu örnekte, intent işlemi ACTION_VIEW
ve veriler
içerir, önerilen öğeyi işaret eden,
android:searchSuggestIntentData
dizesi ve
SUGGEST_COLUMN_INTENT_DATA_ID
sütunu. Ardından URI,
içerik sağlayıcıyı sorgulayan yerel showResult()
yöntemi
öğesi.
Sorgu metnini yeniden yazma
Varsayılan olarak kullanıcı, iztopu veya D-pad gibi yön denetimlerinde sorgu metni güncelleyin. Ancak, kullanıcının sorgu metnini göründüğü gibi geçici olarak yeniden yazabilirsiniz yazın. Bu şekilde önerilen sorguyu görür ve arama kutusunu seçip dağıtmadan önce bir arama sorgusu yürütür.
Sorgu metnini aşağıdaki yöntemlerle yeniden yazabilirsiniz:
android:searchMode
özelliğini arama yapılabilir"queryRewriteFromText"
değerine sahip yapılandırma dosyası oluşturabilirsiniz. Burada önerininSUGGEST_COLUMN_TEXT_1
içeriğindeki sütunu, sorgu metnini yeniden yazmak için kullanılır.android:searchMode
özelliğini aranabilir içeriğinize ekleyin\"queryRewriteFromData"
değerine sahip yapılandırma dosyası oluşturabilirsiniz. Burada önerinin içeriği, Sorguyu yeniden yazmak içinSUGGEST_COLUMN_INTENT_DATA
sütunu kullanılır metin. Bunu yalnızca kullanıcı tarafından görülebilen HTTP URL'leri gibi. Yeniden yazmak için dahili URI şemalarını kullanmayın bu şekilde düşünebilirsiniz.-
SUGGEST_COLUMN_QUERY
sütununa girin. Bu sütunu varsa ve mevcut öneri için bir değer içeriyorsa sorgu metnini yeniden yazmak ve önceki hakkında bilgi edindiniz.
Arama önerilerini Hızlı Arama Kutusu'nda göster
Uygulamanızı özel arama önerileri sunacak şekilde yapılandırdıktan sonra,
Hızlı Arama Kutusu'ndaki kullanılabilir araçları, URL'leri değiştirmek kadar kolay
dahil edilecek
Şu değere sahip android:includeInGlobalSearch
:
"true"
.
Ek çalışma gerektiren tek senaryo, içeriğinizin yalnızca
sağlayıcı, okuma izni istiyor. Bu durumda, buraya bir
Sağlayıcının Quick'a izin vermesi için <path-permission>
öğesi
Aşağıda gösterildiği gibi, içerik sağlayıcınıza Arama Kutusu okuma erişimi
örnek:
<provider android:name="MySuggestionProvider" android:authorities="com.example.MyCustomSuggestionProvider" android:readPermission="com.example.provider.READ_MY_DATA" android:writePermission="com.example.provider.WRITE_MY_DATA"> <path-permission android:pathPrefix="/search_suggest_query" android:readPermission="android.permission.GLOBAL_SEARCH" /> </provider>
Bu örnekte sağlayıcı, içeriğe okuma ve yazma erişimini kısıtlar.
<path-permission>
öğesi, kısıtlamayı
"/search_suggest_query"
içindeki içeriğe okuma erişimi verme
yol önekini kullanırsanız "android.permission.GLOBAL_SEARCH"
izni
gerekir. Bu, Çabuk Arama Kutusu'na, içeriğinizi sorgulayabilmesi için erişim izni verir
sağlayıcı var.
İçerik sağlayıcınız okuma izinlerini zorunlu kılmıyorsa Hızlı Arama Box, varsayılan olarak bu metni okur.
Cihazda önerileri etkinleştirme
Varsayılan olarak uygulamalar, Hızlı Arama Kutusu'nda öneri sağlamak üzere etkinleştirilmez. yapılandırmanın ne kadar önemli olduğu. Eklenip eklenmeyeceğini kullanıcı seçer Aranabilir items: Ayarlar > Arama ve öğesini seçebilirsiniz.
Hızlı Arama Kutusu tarafından kullanılabilen her uygulamanın
Aranabilir öğeler ayarlar sayfası. Giriş, uygulamanın adını içeriyor
ve hangi içeriğin uygulamadan aranabileceğine ve bunların
Hızlı Arama Kutusu'nda öneriler için kullanılabilir. Açıklama metnini tanımlamak için
aranabilir uygulamanız için android:searchSettingsDescription
ekleyin
özelliğini kullanabilirsiniz. Bu özellik, aşağıda gösterildiği gibi,
örnek:
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_label" android:hint="@string/search_hint" android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider" android:searchSuggestIntentAction="android.intent.action.VIEW" android:includeInGlobalSearch="true" android:searchSettingsDescription="@string/search_description" > </searchable>
android:searchSettingsDescription
dizesini kısa ve öz tutun
mümkün olduğunca ekleyin ve aranabilir olan içeriği belirtin. Örneğin, "Sanatçılar,
Albümler ve parçalar" müzik uygulaması veya "Kayıtlı notlar" not defteri uygulaması için.
Bu açıklamanın sağlanması, kullanıcının ne tür reklamlar vereceğini bilmesi açısından önemlidir.
sunulur. Aşağıdaki durumlarda bu özelliği her zaman ekleyin:
android:includeInGlobalSearch
doğru.
Arama önerilerini etkinleştirmek için kullanıcının ayarlar menüsünü ziyaret etmesi gerektiğinden Arama, uygulamanızın önemli bir yönüyse bunu kullanıcılarınıza iletebilirsiniz. Örneğin, bir bildirimi ilk seferde, Kullanıcı, Quick için arama önerilerinin nasıl etkinleştirileceğini açıklayan uygulamayı başlatır. Arama Kutusu.
Hızlı Arama Kutusu öneri kısayollarını yönetme
Kullanıcının Çabuk Arama Kutusu'ndan seçtiği öneriler otomatik olarak nasıl yapıldığını da göreceğiz. Bunlar, sistemin ihtiyaç duymadan öneriye hızlıca erişebilmesini sağlamak için içerik sağlayıcınıza yeniden sorgu gönderin.
Bu ayar, Hızlı Arama tarafından alınan tüm öneriler için varsayılan olarak etkindir
öneriniz olabilir, ancak öneri verileriniz zaman içinde değişirse,
kısayollar yenilenecek. Örneğin, önerileriniz dinamik
bir diğer istek üzerine de önerilebilir, ardından önerinin
kısayolların yenilenmesi gerektiğini unutmayın. Bunu yapmak için
SUGGEST_COLUMN_SHORTCUT_ID
ekleyin. Tekliflerinizi otomatikleştirmek ve optimize etmek için
bu sütunu kullanarak
şu yöntemleri kullanabilirsiniz:
Yeni bir arama deneyimi için Hızlı Arama Kutusu'nun içerik sağlayıcınızı yeniden sorgulamasını sağlayın yeni bir sürüm oluşturun.
SUGGEST_COLUMN_SHORTCUT_ID
sütununa şunun için bir değer girin: yeni bir sürüm için yeniden sorgulanması gereken öneri gösterilir. Kısayol, en önemli verileri kullanarak sorgu geri döndürene kadar kullanılabilir hale gelir. Bu noktada öneri yeni bilgilerle yenilenir. Yenileme sorgusu: içerik sağlayıcınıza şu URI yoluyla gönderilir:SUGGEST_URI_PATH_SHORTCUT
- yerineSUGGEST_URI_PATH_QUERY
.Döndürdüğünüz
Cursor
öğesinin orijinal öneriyle aynı sütunları seçebilir veya boş kısayol artık geçerli değildir; bu durumda, öneri kaybolur Kısayol kaldırılır.Öneriler, yenileme işlemi daha uzun sürebilen veriler (ör. ağ tabanlı yenileme kullanıyorsanız,
SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING
sütunu ve tüm etkinliklerin ilerleme durumunu gösteren döner simgeyi göstermek için, yenileme tamamlanana kadar sağ taraftaki simgeyi basılı tutun. Doğru dışındaki herhangi bir değer ilerleme durumu döner simgesi gösterilmez.Önerinin bir kısayola kopyalanmasını hiç engelleyebilirsiniz.
SUGGEST_NEVER_MAKE_SHORTCUT
SUGGEST_COLUMN_SHORTCUT_ID
sütunu. Bu durumda, öneriler hiçbir zaman kısayola kopyalanmaz. Bu yalnızca önceden kopyalanan önerinin görünmesini kesinlikle istemez. Şu durumda: sütun için normal bir değer sağlayın, ardından öneri kısayolu yalnızca yenileme sorgusu geri gelene kadar görünür.Varsayılan kısayol davranışının geçerli olmasına izin verin.
Her biri için
SUGGEST_COLUMN_SHORTCUT_ID
alanını boş bırakın olarak kaydedilebilecek ve değişmeyen bir öneri olarak kısayolunu görürsünüz.
Önerilerinizden hiçbiri değişmezse,
SUGGEST_COLUMN_SHORTCUT_ID
sütunu.
Çabuk Arama Kutusu öneri sıralaması hakkında
Uygulamanızın arama önerilerini Hızlı Arama Kutusu'nda kullanılabilir hale getirdikten sonra Çabuk Arama Kutusu sıralaması, önerilerin arama sonuçları sayfasında nasıl belirli bir sorgu için geçerli olabilir. Bu, kaç tane başka uygulamanın arama sonuçlarını gösterir ve kullanıcının sonuçlarınızı seçme sıklığına Google Analytics 4'te tarama yapar. Önerilerinizin nasıl olacağına dair herhangi bir garanti yoktur durumunu veya uygulamanızın önerilerinin belirli bir sorgu için gösterilip gösterilmediğini belirleyebilirsiniz. İçinde kaliteli sonuçlar sunmak, uygulamanızın Google tarafından Öneriler belirgin bir konumda sunulur ve Düşük kaliteli önerilerin sıralaması daha düşük olur veya hiç gösterilmez.