我的應用程序的某些部分會更好地突出顯示給用戶,如果他們在電話上。有沒有辦法判斷用戶在使用手機時是否正在使用您的應用程序?
是否有打電話來查看我們是否在打電話?不幸的是,出於顯而易見的原因,「致電」在API文檔中檢查是一個可怕的詞。
我的應用程序的某些部分會更好地突出顯示給用戶,如果他們在電話上。有沒有辦法判斷用戶在使用手機時是否正在使用您的應用程序?
是否有打電話來查看我們是否在打電話?不幸的是,出於顯而易見的原因,「致電」在API文檔中檢查是一個可怕的詞。
CoreTelephony Framework可以告訴你。
的CTCallCenter currentCalls方法返回一組的當前活動的蜂窩呼叫。
當iPhone收到呼叫時,應用程序退出。你可以註冊一個回調來妥善處理此事件,請參閱:
後,您的應用程序將重新啓動。
出現在通話過程中保留您的應用程序的狀態只是寫得好:)
Arggh!我剛剛讀了你的實際問題。
我找不到,也不知道任何API訪問電話應用程序。我唯一的建議是,Phone是一個像其他應用程序一樣的應用程序 - 它可以通過所有應用程序提供的http隧道發佈信息。
我想知道如果你能有一個「我的手機」按鈕,用戶可以按來達到同樣的效果?
當呼叫進入時,應用程序不會退出,它將轉換到非活動狀態。下面的方法應該是呼籲UIApplicationDelegate:
- (void)applicationWillResignActive:(UIApplication *)application
這種方法也被稱爲在其他情況下,當iPhone被鎖定,例如,你有沒有辦法確定,如果它是一個呼入電話引起它。
看看[[UIScreen mainScreen] bounds]
和[[UIScreen mainScreen] applicationFrame]
之間的尺寸差異。如果diff是20像素,並且您沒有隱藏狀態欄,則用戶可能不在通話中。如果差異爲40像素,則用戶可能正在通話,因爲通話過程中出現的發光綠色狀態欄大約是正常狀態欄的兩倍。
我以前沒有這樣做過,所以YMMV。祝你好運,讓我知道,如果它的工作!
我以爲這是答案,但tethering做同樣的事情......:O( – Michael 2009-11-03 19:30:09
這是場景。 Bob從Jill接到電話。發生呼叫時Bob不使用我的應用程序。 Jill要求從我的應用程序中存儲的鮑勃的一些信息。 Bob在電話中按下主頁按鈕,然後運行我的應用程序。 在這一點上,我想檢測到鮑勃正在通過電話交談,或者如果鮑勃剛剛在不通電話的情況下運行應用程序。 我不在乎應用程序運行時進入的電話 – Michael 2009-10-07 20:33:49
偉大的問題。我也想知道。 – Jordan 2009-10-07 21:48:12