2012-02-18 66 views
0

我正在開發一個應用程序,它應該:如何在Android中識別來電的開始和結束?

  • 當來電開始時啓動。
  • 呼叫結束後立即結束。

更具體地說,我不想要應用程序,而電話響起開始,但實際談話是開始時(也就是,用戶已接受來電)。

有誰知道如何做到這一點?以及如何捕捉這些事件?

回答

2

廣播接收器將幫助你。 Here是其官方的谷歌開發者頁面。

Here是一個相同的小教程。

+0

我還不明白如何捕捉我想要的事件。你的第二個例子在哪裏? – 2012-02-18 16:37:18

+0

所有你基本需要的是[廣播接收器](http://developer.android.com/reference/android/content/BroadcastReceiver.html)。本教程末尾的代碼給你提供了這一點。 – 2012-02-18 17:03:16

1

你想要的是由TelephonyManager提供。

您應該創建一個BroadcastReceiver,它會監聽ACTION_PHONE_STATE_CHANGED。當你在你的AndroidManifest.xml中聲明它時,它會產生你的服務/活動。 當您產卵時,手機很可能剛剛處於振鈴狀態。因此,您必須通過TelephonyManager.listen()註冊PhoneState的進一步更改。這樣你就會注意到電話被掛斷時以及回到閒置狀態。

不要忘了要求READ_PHONE_STATE permission

+0

你可否提供我一個例子? – 2012-02-18 16:34:57

+0

可以在[這裏]找到用於TelephoneState的BroadcastReceiver的示例(http://www.vogella.de/articles/AndroidServices/article.html)。對於狀態監聽器試試[this](http://marakana.com/forums/android/examples/62.html)一。你只需要合併它們。 – Luminger 2012-02-18 17:23:08

+0

我看到了第一篇文章,@Anand S給了我那個鏈接。第二個沒有描述如何識別來電的開始和結束的方式。我錯了嗎? – 2012-02-19 00:39:33

相關問題