Android 6.0 Marshmallow, kullanıcıların asistan aracılığıyla uygulamalarla etkileşimde bulunmaları için yeni bir yol sunuyor Örneğin Google Asistan'a dokunun. Asistan, kullanıcıların bağlamsal olarak bilgi edinmek için görüntüleyebileceği üst düzey bir penceredir alakalı işlemler olabilir. Bu işlemler, için geçerlidir.
Kullanıcılar, asistanı etkinleştirmek için ana sayfa düğmesine uzun basarak veya anahtar kelime öbeği. Buna karşılık, sistem bağlamsal olarak görüntülenen üst düzey bir pencere açar işlemlerdir.
Google Asistan gibi bir asistan uygulaması, Asistan yer paylaşımlı penceresini bir Android platformu düzeyindeki işlevlerle çalışan Now on Tap adlı yeni özellik. Sistem Kullanıcının bir asistan uygulaması seçmesine olanak tanır. Bu uygulama, alakalı bilgileri kullanarak uygulamanızdan bağlamsal bilgiler alır. Android'in Assist API'si.
Bu rehberde, Android uygulamalarının Asistan'ı iyileştirmek için Android Assist API'sini nasıl kullandığı açıklanmaktadır. en iyi uygulamaları paylaşacağız. Asistan'ın başlatabilmesi için nasıl bir medya uygulaması oluşturacağınızı öğrenmek ve kontrol etmek için Google Asistan ve medya uygulamaları bölümüne bakın.
Asistanları Kullanma
Şekil 1'de asistanla kurulan tipik bir kullanıcı etkileşimi gösterilmektedir. Kullanıcı uzun bastığında Assist API geri çağırmaları çağrılır, source uygulamasında (1. adım) bulun. Asistan, yer paylaşımlı pencereyi oluşturur (adım 2 ve 3), ve ardından kullanıcı gerçekleştirilecek işlemi seçer. Asistan seçilen işlemi yürütür. (hedef) restoran uygulamasına derin bağlantıyla niyet tetikleme (4. adım).
Kullanıcılar asistanı yapılandırmak için Ayarlar > Uygulamalar > Varsayılan Uygulamalar > Destek ve ses girişi'ne dokunun. Kullanıcılar, erişim gibi sistem seçeneklerini değiştirebilir metin olarak ekran içeriğini değiştirin ve Şekil 2'de gösterildiği gibi bir ekran görüntüsüne erişin.
Kaynak uygulama
Uygulamanızın kullanıcı için bir bilgi kaynağı olarak asistanla çalıştığından emin olmak istiyorsanız yalnızca erişilebilirlik en iyi inceleyin. Bu bölümde, ek bilgilerin nasıl sağlanacağı açıklanmaktadır. ve kullanıcı deneyiminin iyileştirilmesine yardımcı olmak için özel Görünümler gibi özel işlemler gerekir.
Ek bilgi paylaşma asistan ile
Metin ve ekran görüntüsüne ek olarak uygulamanız daha fazla bilgi edindiniz. Örneğin, müziğiniz mevcut albüm bilgilerini aktarmayı seçebilir. Böylece asistan, Mevcut etkinliğe göre uyarlanmış daha akıllı işlemler önerme. Assist API'lerinin, medya kontrolleri sağlamaz. Medya kontrolleri eklemek için bkz. Google Asistan ve medya uygulamaları.
Uygulamanız, asistana ek bilgi sağlamak için genel uygulama bağlamını nasıl kullanacağınızı kullanarak etkinlik geri çağırma özelliğiyle, etkinliğe özgü bilgileri sağlar. 3. Şekil:
Genel uygulama bağlamı sağlamak için uygulama
Application.OnProvideAssistDataListener
ve kaydettirir
registerOnProvideAssistDataListener()
kullanılıyor.
Etkinliğe özgü bağlamsal bilgiler sağlamak için,
geçersiz kılma onProvideAssistData()
ve onProvideAssistContent()
.
Bu iki etkinlik yöntemi, isteğe bağlı global
çağrılır. Geri çağırma işlevleri ana iş parçacığında yürütüldüğü için
istemde tamamlayın.
Geri çağırma işlevleri yalnızca etkinlik çalışırken çağrılır.
Bağlam sağlama
Kullanıcı, asistanı etkinleştirdiğinde
onProvideAssistData()
, tam ekran görüntüsü oluşturmak için
ACTION_ASSIST
Amaç, bağlam ve bağlam
AssistStructure
örneği olarak temsil edilen mevcut uygulama. Anahtar kelimeleri yerleştirmek için bu yöntemi geçersiz kılabilir,
pakette görünmesini istediğiniz her şeyi
EXTRA_ASSIST_CONTEXT
, destek amacının bir kısmı.
İçeriği açıklama
Uygulamanızda onProvideAssistContent()
kullanılabilir
içerikle alakalı referanslar sağlayarak asistan kullanıcı deneyimini iyileştirmeye başlayın.
olduğunu anlamalısınız. Uygulama içeriğini
Schema.org tarafından tanımlanan yaygın sözlük
aracılığıyla yapılandırabilirsiniz. Aşağıdaki örnekte, bir müzik uygulaması
kullanıcının şu anda kullanmakta olduğu müzik albümünü açıklamak için yapılandırılmış veri
görüntülüyor:
Kotlin
override fun onProvideAssistContent(assistContent: AssistContent) { super.onProvideAssistContent(assistContent) val structuredJson: String = JSONObject() .put("@type", "MusicRecording") .put("@id", "https://example.com/music/recording") .put("name", "Album Title") .toString() assistContent.structuredData = structuredJson }
Java
@Override public void onProvideAssistContent(AssistContent assistContent) { super.onProvideAssistContent(assistContent); String structuredJson = new JSONObject() .put("@type", "MusicRecording") .put("@id", "https://example.com/music/recording") .put("name", "Album Title") .toString(); assistContent.setStructuredData(structuredJson); }
Ayrıca, anahtar kelimelerin özel uygulamalarıyla kullanıcı deneyimini
onProvideAssistContent()
,
Bu da şu avantajları sağlayabilir:
- Sağlanan içeriği düzenler etkinliğin üst düzey bağlamını daha iyi yansıtabilir.
- URI'yı sağlar büyük bir kısmını oluşturur.
setClipData()
alanını başka öğelerle doldurur Kullanıcının şu anda görüntülemekte olduğu ilgi çekici içerik.
Not: Özel metin seçimi uygulaması kullanan uygulamaların muhtemelen
onProvideAssistContent()
ayarını uygulamak için
ve setClipData()
numaralı telefonu arayın.
Varsayılan uygulama
onProvideAssistData()
veya onProvideAssistContent()
geri çağırma uygulanırsa, sistem işleme devam eder ve
Asistan'a otomatik olarak topladığı hiçbir bilgiyi,
penceresi güvenli olarak işaretlenir.
Şekil 3'te gösterildiği gibi, sistem aşağıdaki gibi varsayılan onProvideStructure()
ve onProvideVirtualStructure()
uygulamalarını kullanır:
metin toplayabilir ve hiyerarşi bilgilerini görüntüleyebilirsiniz. Görünümünüzde özel
metin çizimi, sağlamak için onProvideStructure()
öğesini geçersiz kılın
setText(CharSequence)
numaralı telefonu arayarak kullanıcıya gösterilen metni içeren asistan.
Erişilebilirlik desteğinin uygulanması çoğu durumda Asistan'ın ihtiyacı olan bilgileri edinmesine olanak tanır. Erişilebilirlik desteğini uygulamak için Uygulama Oluşturma bölümünde açıklanan en iyi uygulamaları Aşağıdakiler dahil, Erişilebilir:
android:contentDescription
özelliklerini sağlayın.- Özel görünümler için
AccessibilityNodeInfo
alanını doldurun. - Marka
özel
ViewGroup
nesnelerin doğru şekilde teşhir etmek ne kadar iyi karşıladığını görebileceksiniz.
Görüntüler asistanlardan hariç tutuluyor
Uygulamanız, hassas bilgileri işlemek için asistanın mevcut görünümü hariç tutabilir
WindowManager
öğesinin FLAG_SECURE
düzen parametresini ayarlayarak. Şunun için açıkça FLAG_SECURE
ayarlamanız gerekir:
iletişim kutuları da dahil olmak üzere etkinlik tarafından oluşturulan tüm pencereler. Uygulamanız ayrıca
Hariç tutulacak setSecure()
bir yüzey. Hayır
Asistan'daki tüm görüntülemeleri hariç tutmak için genel (uygulama düzeyinde) mekanizma. Not
FLAG_SECURE
, Assist API geri çağırmalarının durmasına neden olmaz.
etkinleşir. FLAG_SECURE
kullanan etkinlik, açıkça belirtmeye devam edebilir.
daha önce açıklanan geri aramaları kullanarak bir asistan uygulamasına bilgi sağlar
inceleyebilirsiniz.
Not: Kurumsal hesaplarda (Android for Work),
yönetici, bu özelliği devre dışı bırakabilir
DevicePolicyManager
API'sinin setScreenCaptureDisabled()
yöntemi kullanılarak iş profili için asistan verilerinin toplanması.
Sesli etkileşimler
Assist API geri çağırmaları da şunlar için çağrılır: anahtar kelime öbeği algılama başlıklı makaleyi inceleyin. Daha fazla bilgi için Ses İşlemler belgeleri.
Z sırası için dikkat edilmesi gereken noktalar
Bir asistan, ekranın üst kısmında gösterilen hafif yer paylaşımlı bir pencere kullanıyor. o anki etkinlik. Kullanıcı, asistanı istediği zaman etkinleştirebileceği için kalıcı oluşturma sistem uyarısı aşağıda gösterildiği gibi, yer paylaşımlı pencereyi engelleyen pencereler Şekil 4.
Uygulamanız kullanıyorsa sistem uyarısı pencereleri, tarayıcı üzerinde hiçbir zaman bırakmadan ve ekran kullanıcı deneyimini kötüleştirir.
Hedef uygulama
Asistan uygulamaları genellikle hedef uygulamaları bulmak için derin bağlantıdan yararlanır. Bu sayede potansiyel bir hedef uygulama kullanıyorsanız derin bağlantı desteği ekleyebilirsiniz. Eşleştirme mevcut kullanıcı bağlamı ile derin bağlantılar veya diğer olası işlemler arasındaki yer paylaşımlı penceresi (Şekil 1'de 3. adımda gösterilmektedir), Google Asistan'ın uygulamasına özeldir. Örneğin, Örneğin, Google Asistan uygulaması şunları yapmak için derin bağlantı ve Uygulama Bağlantıları kullanır hedef uygulamalara trafik çekin.
Kendi Asistanınızı Uygulama
Kendi asistanınızı kullanmak isteyebilirsiniz. Şekilde gösterildiği gibi
2'ye basıldığında, kullanıcı etkin asistan uygulamasını seçebilir. İlgili içeriği oluşturmak için kullanılan
asistan uygulaması, sayfasında gösterildiği gibi VoiceInteractionSessionService
ve VoiceInteractionSession
uygulamasını sağlamalıdır
bu VoiceInteraction
örneğini tıklayın. Bunun için BIND_VOICE_INTERACTION
izni de gereklidir. Asistan, bu işlemin ardından
onHandleAssist()
içindeki AssistStructure
öğesinin bir örneği olarak gösterilen metin ve görünüm hiyerarşisini alın.
Ekran görüntüsünü onHandleScreenshot()
üzerinden alır.