Gelen ve Giden aramalar iphone'da bittiğinde bir etkinliği tetikleyebilir miyim? Bir etkinliğin Axample bir web servisini çağırıyor.Gelecekte ve Giden aramada iphone'da bir olayı tetikleyebilir miyiz?
cevap
Evet, ancak hemen yapmanız gerekmez.
CTCallCenter
sınıfına sahip CoreTelephony çerçevesi adlı bir çerçeve var. Bu sınıftaki özelliklerden biri callEventHandler
property. Bu, bir telefon görüşmesinin durum değiştiğinde tetiklenen bir bloktur. Örneğin: Bu gerçekleştirebileceğiniz tüm gerçekten var
CTCallCenter *callCenter = ...; // get a CallCenter somehow; most likely as a global object or something similar?
[callCenter setCallEventHandler:^(CTCall *call) {
if ([[call callState] isEqual:CTCallStateConnected]) {
//this call has just connected
} else if ([[call callState] isEqual:CTCallStateDisconnected]) {
//this call has just ended (dropped/hung up/etc)
}
}];
. Herhangi bir telefon numarasına erişiminiz yok. Bilginin yalnızca yararlı yararlı bir bilgisi, CTCall
'daki bir tanımlayıcı özelliğidir, böylece bir CTCall
nesnesini benzersiz olarak tanımlarsınız.
DİKKAT:
Bu olay işleyicisi değil uygulama ön planda olmadığı sürece çağrılan olduğunu! Uygulama arka plandayken aramalar alırsanız ve alırsanız, olay işleyici 'u uygulamanız tekrar etkin hale gelinceye kadar'u tetiklemeyecek, bu noktada (yukarıdaki belgelere göre) olay işleyicisi her çağrısı için bir kez çağrılır Uygulama arka plandayken durumu değiştiren.
Hayır. Geçerli SDK'dan itibaren, bu mümkün değildir. Apple, uygulamaların bu tür kancalara sahip olmasına izin vermez.
-1 yanlış. CoreTelephony.framework göz atın. –
Hmm. Bunu bilmiyordum. Yine de, uygulamanıza cevap olarak uygulamanızı "uyandırma" yapamayacağınızı düşünerek doğru muyum? Önalana (kullanıcı girişi ile) tekrar girene kadar beklemeniz gerekecek mi? –
doğru. Bu sadece bir şeylerin olduğunu ve ona tepki verdiğini bilmenin bir yoludur, ancak sadece uygulamanız aktif olduğunda. –
Hayır, ancak bu olaylar gerçekleştiğinde uygulamaya geri çağırma alırsınız.
-(void)applicationWillResignActive:(UIApplication *)application{
//our app is going to loose focus since thier is an incoming call
[self pauseApp];
}
-(void)applicationDidBecomeActive:(UIApplication *)application{
//the user declined the call and is returning to our app
[self resumeApp];
}
Bu, mutlaka gelen bir çağrı olduğu anlamına gelmez. Diğer uygulama, bildirim veya ev düğmesi onu tetikleyecektir. –
Uygulamam bir giden çağrıyı başlatıyor ve bağlantı kesme etkinliğine abone oluyorsa, olay işleyicimde kullanıcının uygulamayı benim uygulamasına geri döndürmesini isteyen bir yerel ileti gönderebilir miyim? Veya giden bir çağrı sona erdikten sonra bir uygulamaya odaklanmak için daha az hantal bir yol biliyor musunuz? – JeremyWeir