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

Android 9, üçüncü taraf arama uygulamalarını daha iyi desteklemek için API'ler sağlar. Üçüncü taraf arama uygulamaları, operatör telefon aramalarıyla birlikte var olabilmek için genellikle PHONE_STATE yayını gibi telefon API'lerini kullanır. Sonuç olarak, üçüncü taraf arama uygulamaları operatör aramalarına öncelik vermelidir ve genellikle operatör aramasına yer açmak için uygulamada gelen aramaları sessizce reddetme veya devam eden bir aramayı sonlandırma yoluna gitmelidir.

Android 9'daki API'ler, üçüncü taraf uygulamaları ile operatör aramaları arasında eşzamanlı arama senaryolarını destekler. Bu sayede, örneğin operatör araması sırasında üçüncü taraf araması alabilirsiniz. Kullanıcı üçüncü taraf aramasıyla etkileşime geçtiğinde operatör aramasının bekletilmesini sağlamak çerçevenin sorumluluğundadır.

Android 9'da, üçüncü taraf çağrı 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ı makaleyi inceleyin.

Kendi kendini yöneten ConnectionService API, geliştiricilere uygulamalarındaki aramaların sistem arama kaydına kaydedilmesini etkinleştirme olanağı da sunar (EXTRA_LOG_SELF_MANAGED_CALLS bölümüne bakın). Android Uyumluluk Tanımlama Belgesi (CDD)'ndeki şartlara (7.4.1.2 numaralı bölüm) göre, arama cihazınızın veya telefon uygulamanızın bu arama kaydı girişlerini gösterdiğinden ve aramanın yapıldığı üçüncü taraf arama uygulamasının adını gösterdiğinden emin olmanız gerekir (AOSP arama cihazı uygulamasının bu koşulu nasıl karşıladığını gösteren bir örnek için Üçüncü taraf arama uygulamalarından gelen arama kaydı girişleri bölümüne bakın).

Uygulamaların bağlantılarında CAPABILITY_SUPPORT_HOLD ve CAPABILITY_HOLD ayarlarını yapmak uygulamaların sorumluluğundadır. Ancak bazı durumlarda uygulama arama yapamaz. Çerçeve, bu tür destek kayıtlarını çözüme ulaştırmaya yönelik hükümler içerir.

Senaryolar

Arama uygulamanızı aşağıdaki senaryoları ele alacak şekilde değiştirmeniz gerekir.

Devam eden bir aramanın bağlantısını kesen gelen aramaları yönetme

Beklemeyi desteklemeyen devam eden bir üçüncü taraf araması (ör.SuperCaller araması) olduğu ve kullanıcının mobil arama aldığı (ör. FooCom operatörünü kullandığı) bir senaryoda, Telefon veya Telefon uygulaması kullanıcıya mobil ağ aramasını yanıtlamanın devam eden üçüncü taraf aramasını sonlandıracağını belirtmelidir.

Üçüncü taraf arama uygulamasında, çerçeve tarafından tutulamayan devam eden bir arama olabileceğinden bu kullanıcı deneyimi önemlidir. Yeni bir mobil aramayı yanıtladığınızda devam eden üçüncü taraf aramasının bağlantısı kesilir.

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

Devam eden üçüncü taraf aramasının bağlantısını kesen gelen arama

Şekil 1. Devam eden üçüncü taraf aramasının, gelen arama nedeniyle kesilmesi.

Arama 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 değerinin TRUE, EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME değerinin ise gelen mobil aramayı yanıtladıktan sonra araması kesilen uygulamanın adına ayarlandığından emin olun.

Üçüncü taraf arama uygulamalarından gelen arama kaydı girişleri

Üçüncü taraf arama uygulamalarının geliştiricileri, uygulamalarındaki aramaların sistem arama günlüğüne kaydedilmesini etkinleştirebilir (EXTRA_LOG_SELF_MANAGED_CALLS bölümüne bakın). Bu, arama günlüğünde mobil ağ aramalarına ait olmayan girişler olabileceği anlamına gelir.

AOSP numara çevirici uygulaması bir üçüncü taraf arama uygulamasıyla ilgili arama kaydı girişlerini görüntülediğinde, aramanın gerçekleştiği uygulamanın adı aşağıdaki şekilde gösterildiği gibi çağrı günlüğünde görüntülenir:

Üçüncü taraf arama uygulamasıyla arama günlüğü girişi

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

Arama kaydı girişiyle ilişkili bir 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 arama kaydı girişinin kaynağını tanımlayan bir PhoneAccountHandle örneği oluşturun. Telefon Hesabı'nın ayrıntılarını almak için TelecomManager sorgusunu sorgulayın.
Bir arama kaydı girişinin üçüncü taraf arama uygulamasından olup olmadığını belirlemek için CAPABILITY_SELF_MANAGED değerinin ayarlanıp ayarlanmadığını görmek üzere PhoneAccount özelliklerini kontrol edin.

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

Doğrulama

Cihazınızın üçüncü taraf arama uygulamalarını destekleyip desteklemediğini test etmek için kendi kendini yöneten ConnectionService API'yi uygulayan Telecomm test uygulamasını kullanın. Uygulama /packages/services/Telecomm/testapps/ konumunda bulunuyor.

  1. Test uygulamasını, aşağıdakileri kullanarak Android kaynak deponuzun kökünden derleyin:

    mmma packages/services/Telecomm/testapps/

  2. Derleme apk'sını adb install -g -r <apk path> kullanarak yükleyin. Ardından, başlatıcınıza Self-Managed Sample simgesi eklenir.

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

Devam eden bir aramanın bağlantısını kesen gelen aramaları yönetme

Gelen bir aramanın devam eden üçüncü taraf aramasının bağlantısını kestiğini doğrulamak için aşağıdaki adımları uygulayın.

Uygulamayı üçüncü taraf arama uygulamaları için test etme

Şekil 3. Uygulamayı, ConnectionService API'nin örnek uygulamalarıyla test edin.

  1. Tutabilir seçeneğini temizleyin.
  2. Yeni bir örnek giden arama başlatmak için GİDEN'e dokunun.
  3. Aramayı etkinleştirmek için ETKİNLİK düğmesine dokunun.
  4. Test edilen cihazın telefon numarasını başka bir telefonla arayın. Bu, çeviricinize bir uygulamanın adının sağlandığı senaryoyu tetikler. Bu uygulamanın araması kesilir.
  5. İşlemi tamamladığınızda test uygulamasında BAĞLANTIYI KES düğmesine dokunun.

Üçüncü taraf arama uygulamalarından gelen arama günlüğü girişleri

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