1>編寫乙個***類,該類繼承自phonestatelistener:
重寫該類中的監聽方法:
classmyphonelistener extends phonestatelistener}}
2>建立並啟動監聽服務(需要執行如下**才能監聽並執行***中重寫的oncallstatechangerd方法);
telephonymanagermanager = (telephonymanager) getsystemservice(telephony_service
);manager.listen(newmyphotolistener(),phonestatelistener.listen_call_state
);3>在清單檔案中註冊許可權。
android.permisison.read_phone_state
/** device call state: no activity. */
手機沒有發生通話行為,空閒狀態;
結束通話會觸發該事件。
public
static
final
intcall_state_idle
= 0;
/** device call state: ringing. a new callarrived and is
* ringing or waiting. in the latter case, another call is
* already active. */
簡單翻譯一下:手機處於振鈴狀態。當有新的呼叫呼入或者呼叫等待時,觸發該事件。呼叫等待指的是當前已存在接通的通話(如果開通了呼叫等待業務,在有通話業務過程中,其他號碼呼入也會觸發該事件);
public
static
final
intcall_state_ringing
= 1;
/** device call state: off
-hook. at least onecall exists
* that is dialing, active, or on hold,and no calls are ringing
* or waiting. */
這個要重點說一下,看有資料翻譯offhook是掛機,這個是錯誤的。掛機會直接執行call_state_idle。offhook是摘機,就是接**。
原文翻譯:**的(通話)狀態:摘機。至少存在乙個撥號,接通,或者呼叫保持的業務,並且不存在其他呼叫的振鈴或者呼叫等待。
就是在撥號時、接**時、接通處於呼叫等待中的來電時、都會觸發該事件。
public
static
final
intcall_state_offhook
= 2;
android獲取系統wifi狀態等
wifi 獲取wifi狀態 wifimanager wifimanager wifimanager context.getsystemservice context.wifi service if wifimanager null 附 wifi狀態有以下幾種 括號內為所對應的的int值 1.wifi...
Android 預設通話應用
專案中有個彩鈴需求,所以用到了預設通話,在android10之後,請求預設通話許可權發生了改變,故整理 關於替換系統的預設通話,需要提供如下幾點 1.提供uiactivity,在登錄檔中需要有如下配置 2.提供service,在登錄檔中也需要如下配置 class phonecallservice e...
安卓通話狀態監控
case stop ring if dbg log mringhandler stop ring.r ringtone msg.obj if r null else getlooper quit break 這邊是當對方接聽前掛 或者對方沒有能力接 後,本機的提示音會隨之變化,關鍵在與這個stop ...