監聽Android手機的呼叫狀態

2021-07-03 02:31:47 字數 1292 閱讀 2171

telephonymanager作為乙個service介面提供給使用者查詢**相關的內容,比如imei,linenumber1等。通過下面的**即可獲得telephonymanager的例項。

telephonymanager mtelephonymgr = (telephonymanager) this

.getsystemservice(context.telephony_service);

在android平台中,phonestatelistener是個很有用的***,用來監聽**的狀態,比如呼叫狀態和連線服務等。其方法如下所示:

public void oncallforwardingindicatorchanged(boolean cfi)

public void oncallstatechanged(int state, string incomingnumber)

public void oncelllocationchanged(celllocation location)

public void ondataactivity(int direction)

public void ondataconnectionstatechanged(int state)

public void onmessagewaitingindicatorchanged(boolean mwi)

public void onservicestatechanged(servicestate servicestate)

public void onsignalstrengthchanged(int asu)

這裡我們只需要覆蓋oncallstatechanged()方法即可監聽呼叫狀態。在telephonymanager中定義了三種狀態,分別是振鈴(ringing),摘機(offhook)和空閒(idle),我們通過state的值就知道現在的**狀態了。

獲得了telephonymanager介面之後,呼叫listen()方法即可監聽**狀態。

mtelephonymgr.listen(new telelistener(),

phonestatelistener.listen_call_state);

下面是個簡單的測試例子,只是把呼叫狀態追加到textview之上。

package com.j2medev;

public class telephony extends activity

class telelistener extends phonestatelistener

}不要忘記在androidmanifest.xml裡面新增個permission.

Android獲取手機狀態和監聽手機來電狀態

獲取手機狀態 import android.content.context import android.telephony.telephonymanager 獲得相應的系統服務 telephonymanager tm telephonymanager getsystemservice contex...

android開發之手機螢幕狀態的監聽

直接上工具類 public class screenobserverutil catch exception nsme screen狀態廣播接收者 private class screenbroadcastreceiver extends broadcastreceiver else if inte...

Android 手機定位呼叫方法

android手機定位在中國還是有些坑的。首先android的定位方式分為三種 gps,net work,passive 具體問題 見 1.獲取定位管理服務 locationmanager mglocation locationmanager mainactivity.this.getsystems...