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:
Ç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:
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.
Aşağıdakileri kullanarak test uygulamasını Android kaynak deponuzun kökünden oluşturun:
mmma packages/services/Telecomm/testapps/
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.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.
- Tutulabilir seçeneğinin işaretini kaldırın.
- Yeni bir örnek giden arama başlatmak için GİDEN'e dokunun.
- Aramanın aktif hale gelmesi için AKTİF düğmesine dokunun.
- 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.
- İş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.