Üçüncü taraf arama uygulamalarını destekleme

Android 9, üçüncü taraf arama uygulamalarını daha iyi desteklemek için API'ler sağlar. Üçüncü taraf telefon uygulamaları genellikle operatör telefon görüşmeleriyle birlikte çalışmak için PHONE_STATE yayını gibi Telefon API'lerini kullanır. Sonuç olarak, üçüncü taraf arama uygulamaları operatör aramalarına öncelik vermelidir ve genellikle uygulamadaki gelen aramaları sessizce reddetmeye veya operatör araması için devam eden bir aramayı sonlandırmaya başvurur.

Android 9'daki API'ler, üçüncü taraf uygulamaları ve operatör aramaları arasında eşzamanlı arama senaryolarını destekler. Bu sayede, örneğin bir operatör görüşmesi yaparken üçüncü taraflardan gelen aramaları yanıtlayabilirsiniz. Bu çerçeve, kullanıcı üçüncü taraf aramasına katıldığında operatör aramasının yapılmasını sağlamakla yükümlüdür.

Android 9'da üçüncü taraf arama uygulamalarının kendi kendine yönetilen ConnectionService API'sini uygulaması önerilir. Bu API'yi kullanarak arama uygulaması oluşturma hakkında daha fazla bilgi için Arama uygulaması oluşturma başlıklı makaleye bakın.

Kendi kendine yönetilen ConnectionService API, geliştiricilere uygulamalarındaki aramaların sistem arama kaydına kaydedilmesini etkinleştirme fırsatı da sunar (bkz. EXTRA_LOG_SELF_MANAGED_CALLS). Android Uyumluluk Tanımı Belgesi'ndeki (CDD) (bölüm 7.4.1.2) şartlara göre, çevirici veya telefon uygulamanızın bu arama kaydı girişlerini göstermesini ve aramanın yapıldığı üçüncü taraf arama uygulamasının adını göstermesini sağlamanız gerekir (AOSP çevirici uygulamasının bu şartı nasıl karşıladığına dair bir örnek için bkz. Üçüncü taraf arama uygulamalarından gelen arama kaydı girişleri).

Uygulamalar, bağlantılarında CAPABILITY_SUPPORT_HOLD ve CAPABILITY_HOLD ayarlarını yapmaktan sorumludur. Ancak bazı durumlarda uygulamalar görüşme yapamayabilir. Çerçeve, bu tür vakaların çözülmesine yönelik hükümleri içerir.

Senaryolar

Çevirici uygulamanızı aşağıdaki senaryoları işleyecek şekilde değiştirmeniz gerekir.

Devam eden bir aramayı sonlandıran gelen aramaları yönetme

Bekletme özelliğini desteklemeyen devam eden bir üçüncü taraf görüşmesi (ör.Süper Arayan görüşmesi) sırasında kullanıcıya mobil arama geldiğinde (ör. FooCom operatörünü kullanarak) Arama veya Telefon uygulamanız, mobil ağ aramasını yanıtlamanın devam eden üçüncü taraf görüşmesini sonlandıracağını kullanıcıya bildirmelidir.

Üçüncü taraf bir arama uygulamasının, çerçeve tarafından tutulamayan devam eden bir araması olabileceğinden bu kullanıcı deneyimi önemlidir. Yeni bir cep telefonu araması yanıtlandığında devam eden üçüncü taraf araması kesilir.

Örnek için şekil üzerindeki kullanıcı arayüzüne bakın:

Gelen arama, devam eden üçüncü taraf görüşmesinin bağlantısını kesiyor

1. şekil. Gelen arama, devam eden üçüncü taraf görüşmesinin bağlantısını kesiyor.

Çevirici uygulamanız, arama ekstralarını kontrol ederek gelen bir aramanın başka bir aramanın bağlantısının kesilmesine neden olup olmadığını kontrol edebilir. EXTRA_ANSWERING_DROPS_FG_CALL seçeneğinin TRUE olarak, EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME seçeneğinin ise gelen mobil arama yanıtlandığında araması kesilen uygulamanın adı olarak ayarlandığından emin olun.

Üçüncü taraf görüşme uygulamalarındaki arama kaydı girişleri

Üçüncü taraf arama uygulamalarının geliştiricileri, uygulamalarındaki aramaların sistem çağrı günlüğüne kaydedilmesini etkinleştirebilir (bkz. EXTRA_LOG_SELF_MANAGED_CALLS). Bu, çağrı günlüğünde mobil ağ aramalarıyla ilgili olmayan girişlerin olabileceği anlamına gelir.

AOSP çevirici uygulaması, üçüncü taraf bir arama uygulamasıyla ilgili arama günlüğü girişlerini gösterdiğinde, aramanın yapıldığı uygulamanın adı, şekilde gösterildiği gibi arama günlüğünde gösterilir:

Üçüncü taraf arama uygulamasıyla yapılan arama kaydı girişi

Şekil 2. Çevirici uygulamasında üçüncü taraf arama uygulamasının adını içeren arama günlüğü girişi.

Bir arama kaydı girişiyle ilişkili uygulamanın adını belirlemek için arama kaydı sağlayıcısındaki PHONE_ACCOUNT_COMPONENT_NAME ve PHONE_ACCOUNT_ID sütunlarını kullanarak PhoneAccountHandle örneği oluşturun. Bu örnek, arama kaydı girişinin kaynağını tanımlar. Telefon hesabı ile ilgili ayrıntıları almak için sorgu. TelecomManager
Bir arama günlüğü girişinin üçüncü taraf arama uygulamasından olup olmadığını belirlemek için PhoneAccount özelliklerini kontrol ederek CAPABILITY_SELF_MANAGED ayarlanıp ayarlanmadığını görün.

Döndürülen PhoneAccount öğesinin getLabel yöntemi, üçüncü taraf arama uygulamasından gelen bir arama kaydı girişiyle ilişkili uygulamanın adını döndürür.

Doğrulama

Cihazınızın üçüncü taraf görüşme uygulamalarını desteklediğini test etmek için, kendi kendine yönetilen ConnectionService API'yi uygulayan Telecomm test uygulamasını kullanın. Uygulama, /packages/services/Telecomm/testapps/ konumunda bulunuyor.

  1. Aşağıdaki komutları kullanarak test uygulamasını Android kaynak deponuzun kökünden oluşturun:

    mmma packages/services/Telecomm/testapps/

  2. adb install -g -r <apk path> kullanarak derleme APK'sını yükleyin. Başlatıcınıza Self-Managed Sample simgesi eklenir.

  3. Test uygulamasını açmak için simgeye dokunun.

Devam eden bir aramayı sonlandıran gelen aramaları yönetme

Gelen bir aramanın devam eden üçüncü taraf görüşmesini sonlandırdığını doğrulamak için aşağıdaki adımları uygulayın.

Üçüncü taraf görüşme uygulamaları için test uygulaması

3.Şekil ConnectionService API'nin örnek uygulamalarıyla test uygulamasını kullanın.

  1. Holdable (Cüzdana Eklenebilir) seçeneğinin işaretini kaldırın.
  2. Yeni bir örnek giden arama başlatmak için GİDEN'e dokunun.
  3. Aramayı etkinleştirmek için ETKİN düğmesine dokunun.
  4. Test edilen cihazın telefon numarasını başka bir telefondan arayın. Bu, arama uygulamanıza, araması sonlandırılacak bir uygulamanın adının sağlandığı senaryoyu tetikler.
  5. İşiniz bittiğinde test uygulamasında BAĞLANTIYI KES düğmesine dokunun.

Üçüncü taraf görüşme uygulamalarındaki arama kaydı girişleri

Yukarıdaki adımları tamamladıktan sonra test uygulaması, sistem çağrı günlüğüne bir çağrı kaydetmelidir. Cihazın, üçüncü taraf arama uygulamalarından gelen aramaları kaydettiğini onaylamak için çevirici uygulamanızı açın ve aramanın sistem arama kaydında göründüğünü onaylayın.