Bağlama Özel İçeriği Asistan için Optimize Etme

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).

Şekil 1. Asistan'ın Now on Tap özelliğiyle etkileşimi örneği Google uygulaması

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.

Şekil 2. Destek ve ses girişi ayarları

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:

Şekil 3. Assist API yaşam döngüsü dizisi şeması

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:

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:

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.

Şekil 4. Destek katmanı Z sırası

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.