Üçüncü Taraf Arama Uygulamalarını Destekleme

Android 9, üçüncü taraf (3P) arama uygulamalarını daha iyi desteklemek için API'ler sağlar. 3. taraf arama uygulamaları, operatörün telefon aramalarıyla birlikte var olabilmesi için genellikle PHONE_STATE yayını gibi Telefon API'lerine dayanır. Sonuç olarak, 3P arama uygulamalarının operatör aramalarına öncelik vermesi ve çoğu zaman uygulamada gelen aramaları sessizce reddetmeye veya operatör aramasına yer açmak için devam eden bir aramayı sonlandırmaya başvurması gerekir.

Android 9'daki API'ler, 3P uygulamalar ve operatör aramaları arasındaki eşzamanlı arama senaryolarını destekler. Bu, örneğin bir operatör araması sırasında gelen bir 3P aramasını almayı mümkün kılar. Çerçeve, kullanıcı 3P aramasına girdiğinde operatör aramasının bekletilmesini sağlama sorumluluğunu üstlenir.

Android 9'da, 3. taraf arama uygulamalarının kendi kendini yöneten ConnectionService API'sini uygulaması teşvik edilmektedir. Bu API'yi kullanarak bir arama uygulamasının nasıl oluşturulacağı hakkında daha fazla bilgi için bkz . Arama uygulaması oluşturma .

Kendi kendine yönetilen ConnectionService API ayrıca geliştiricilere, uygulamalarındaki çağrıların sistem çağrı günlüğüne kaydedilmesini seçme fırsatı da verir (bkz. EXTRA_LOG_SELF_MANAGED_CALLS ). Android Uyumluluk Tanımı Belgesindeki (CDD) (bölüm 7.4.1.2) gereksinimlere göre, çeviricinizin/telefon uygulamanızın bu çağrı günlüğü girişlerini görüntülediğinden ve çağrının yapıldığı 3. taraf çağrı uygulamasının adını gösterdiğinden emin olmalısınız (örneğin, AOSP çevirici uygulamasının bu gereksinimi nasıl karşıladığı için bkz . 3. taraf arama uygulamalarından arama kaydı girişleri ).

Uygulamalar, uygulamalarının bağlantılarında CAPABILITY_SUPPORT_HOLD ve CAPABILITY_HOLD ayarlarının yapılmasından sorumludur. Ancak bazı durumlarda bir uygulamanın çağrıyı bekleyememesi mümkündür. Çerçeve bu tür davaların çözümüne yönelik hükümler içermektedir.

Senaryolar

Aşağıdaki senaryoları işlemek için çevirici uygulamanızı değiştirmelisiniz.

Devam eden bir çağrının bağlantısını kesen gelen çağrıları yönetme

Bekletmeyi desteklemeyen, devam eden bir 3P aramasının olduğu (örneğin bir SuperCaller çağrısında) ve kullanıcının bir mobil çağrı aldığı (örneğin kendi operatörü FooCom aracılığıyla) bir senaryoda, Çevirici/Telefon uygulamanız kullanıcıya yanıtlamanın gerekli olduğunu belirtmelidir. mobil ağ araması devam eden 3P aramasını sonlandıracaktır.

Bu kullanıcı deneyimi, 3. taraf arama uygulamasının çerçeve tarafından durdurulamayan devam eden bir araması olabileceğinden önemlidir. Yeni bir mobil aramanın yanıtlanması, devam eden 3. taraf aramasının kesilmesine neden olur.

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

Devam eden bir 3P aramasının bağlantısını kesen gelen arama
Şekil 1. Devam eden bir 3P aramasının bağlantısını kesen gelen arama

Ç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 öğesinin TRUE olarak ayarlandığından ve EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME öğesinin, gelen mobil aramayı yanıtladıktan sonra araması kesilen uygulamanın adı olarak ayarlandığından emin olun.

3. taraf arama uygulamalarından arama kaydı girişleri

3. taraf arama uygulamalarının geliştiricileri, uygulamalarındaki aramaların sistem arama günlüğüne kaydedilmesini tercih edebilir (bkz. EXTRA_LOG_SELF_MANAGED_CALLS ). Bu, arama kaydında mobil ağ aramaları için olmayan girişlerin bulunabileceği anlamına gelir.

AOSP çevirici uygulaması, 3. 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ğıda gösterildiği gibi, arama kaydında görüntülenir:

3. taraf arama uygulamasıyla arama kaydı girişi
Şekil 2. Çevirici uygulamasında 3. taraf arama uygulamasının adını içeren arama kaydı girişi

Bir çağrı günlüğü girişiyle ilişkili bir uygulamanın adını belirlemek için, bir çağrı günlüğü girişinin kaynağını tanımlayan bir PhoneAccountHandle örneği oluşturmak üzere çağrı günlüğü sağlayıcısındaki PHONE_ACCOUNT_COMPONENT_NAME ve PHONE_ACCOUNT_ID sütunlarını kullanın. Telefon Hesabı ayrıntılarını almak için TelecomManager sorgulayın.
Bir çağrı kaydı girişinin 3. taraf arama uygulamasından olup olmadığını belirlemek için PhoneAccount özelliklerini kontrol ederek CAPABILITY_SELF_MANAGED ayarlanıp ayarlanmadığını kontrol edin.

Döndürülen PhoneAccount getLabel yöntemi, 3. 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 3. taraf arama uygulamalarını desteklediğ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 bulunur.

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

    mmma packages/services/Telecomm/testapps/

  2. Derleme apk'sini adb install -g -r <apk path> kullanarak yükleyin. Daha sonra başlatıcınıza bir Kendi Kendini Yöneten Örnek simgesi eklenir.

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

Devam eden bir çağrının bağlantısını kesen gelen çağrıları yönetme

Gelen bir aramanın devam eden bir 3. taraf aramasının bağlantısını kestiğini doğrulamak için bu adımları izleyin.

3. taraf arama uygulamaları için uygulamayı test edin
Şekil 3. Kendi kendini yöneten ConnectionService API'sinin örnek uygulamalarıyla test uygulaması
  1. Tutulabilir seçeneğinin işaretini kaldırın.
  2. Yeni bir örnek giden arama başlatmak için GİDEN'e dokunun.
  3. Aramanın aktif hale gelmesi için AKTİF düğmesine dokunun.
  4. Test edilen cihazın telefon numarasını başka bir telefonla arayın. Bu, çeviricinize, aramasının bağlantısı kesilecek bir uygulamanın adının sağlandığı senaryoyu başlatır.
  5. İşiniz bittiğinde test uygulamasında BAĞLANTIYI KESİN düğmesine dokunun.

3. taraf arama uygulamalarından arama kaydı girişleri

Yukarıdaki adımları tamamladıktan sonra test uygulamasının sistem çağrı günlüğüne bir çağrı kaydetmiş olması gerekir. Cihazın 3. taraf arama uygulamalarından gelen aramaları günlüğe kaydettiğini doğrulamak için çevirici uygulamanızı açın ve aramanın sistem arama günlüğünde göründüğünü onaylayın.