亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

android 電話狀態監聽(來電和去電)實現代碼

2020-04-11 12:39:47
字體:
來源:轉載
供稿:網友
實現手機電話狀態的監聽,主要依靠兩個類:TelephoneManger和PhoneStateListener。
TelephonseManger提供了取得手機基本服務的信息的一種方式。因此應用程序可以使用TelephonyManager來探測手機基本服務的情況。應用程序可以注冊listener來監聽電話狀態的改變。我們不能對TelephonyManager進行實例化,只能通過獲取服務的形式:
Context.getSystemService(Context.TELEPHONY_SERVICE);
注意:對手機的某些信息進行讀取是需要一定許可(permission)的。
主要靜態成員常量:(它們對應PhoneStateListener.LISTEN_CALL_STATE所監聽到的內容)
int CALL_STATE_IDLE 空閑狀態,沒有任何活動。
int CALL_STATE_OFFHOOK 摘機狀態,至少有個電話活動。該活動或是撥打(dialing)或是通話,或是 on hold。并且沒有電話是ringing or waiting
int CALL_STATE_RINGING 來電狀態,電話鈴聲響起的那段時間或正在通話又來新電,新來電話不得不等待的那段時間。
手機通話狀態在廣播中的對應值
EXTRA_STATE_IDLE 它在手機通話狀態改變的廣播中,用于表示CALL_STATE_IDLE狀態
EXTRA_STATE_OFFHOOK 它在手機通話狀態改變的廣播中,用于表示CALL_STATE_OFFHOOK狀態
EXTRA_STATE_RINGING 它在手機通話狀態改變的廣播中,用于表示CALL_STATE_RINGING狀態
ACTION_PHONE_STATE_CHANGED 在廣播中用ACTION_PHONE_STATE_CHANGED這個Action來標示通話狀態改變的廣播(intent)。
注:需要許可READ_PHONE_STATE。
String EXTRA_INCOMING_NUMBER
在手機通話狀態改變的廣播,用于從extra取來電號碼。
String EXTRA_STATE 在通話狀態改變的廣播,用于從extra取來通話狀態。

主要成員函數
public int getCallState() 取得手機的通話狀態。
public CellLocation getCellLocation () 返回手機當前所處的位置。如果當前定位服務不可用,則返回null
注:需要許可(Permission)ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION.
public int getDataActivity () 返回當前數據連接活動狀態的情況。
public int getDataState () 返回當前數據連接狀態的情況。
public String getDeviceId ()
返回手機的設備ID。比如對于GSM的手機來說是IMEI碼,對于CDMA的手機來說MEID碼或ESN碼。如果讀取失敗,則返回null。

如何實現電話狀態的監聽呢?
Android在電話狀態改變是會發送action為android.intent.action.PHONE_STATE的廣播,而撥打電話時會發送action為android.intent.action.NEW_OUTGOING_CALL的廣播,但是我看了下開發文檔,暫時沒發現有來電時的廣播。通過自定義廣播接收器,接受上述兩個廣播便可。
Java代碼:
復制代碼 代碼如下:

package com.pocketdigi.phonelistener;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
public class PhoneReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("action"+intent.getAction());
//如果是去電
if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){
String phoneNumber = intent
.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.d(TAG, "call OUT:" + phoneNumber);
}else{
//查了下android文檔,貌似沒有專門用于接收來電的action,所以,非去電即來電.
//如果我們想要監聽電話的撥打狀況,需要這么幾步 :
* 第一:獲取電話服務管理器TelephonyManager manager = this.getSystemService(TELEPHONY_SERVICE);
* 第二:通過TelephonyManager注冊我們要監聽的電話狀態改變事件。manager.listen(new MyPhoneStateListener(),
* PhoneStateListener.LISTEN_CALL_STATE);這里的PhoneStateListener.LISTEN_CALL_STATE就是我們想要
* 監聽的狀態改變事件,初次之外,還有很多其他事件哦。
* 第三步:通過extends PhoneStateListener來定制自己的規則。將其對象傳遞給第二步作為參數。
* 第四步:這一步很重要,那就是給應用添加權限。android.permission.READ_PHONE_STATE
TelephonyManager tm = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);
tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
//設置一個監聽器
}
}
PhoneStateListener listener=new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {
//注意,方法必須寫在super方法后面,否則incomingNumber無法獲取到值。
super.onCallStateChanged(state, incomingNumber);
switch(state){
case TelephonyManager.CALL_STATE_IDLE:
System.out.println("掛斷");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
System.out.println("接聽");
break;
case TelephonyManager.CALL_STATE_RINGING:
System.out.println("響鈴:來電號碼"+incomingNumber);
//輸出來電號碼
break;
}
}
};
}

要在AndroidManifest.xml注冊廣播接收器:
復制代碼 代碼如下:

<receiver android:name=".PhoneReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
<receiver android:name=".PhoneReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"/> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> </intent-filter> </receiver>

還要添加權限:
復制代碼 代碼如下:

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品高清网站| 国产综合在线视频| 久久人人97超碰精品888| 亚洲视频精品在线| 日韩电视剧免费观看网站| 成人免费网站在线观看| 国产精品久久久91| 精品一区二区电影| 国内精品久久久久久久| 亚洲最大成人网色| 国产一区视频在线| 国产香蕉精品视频一区二区三区| 欧美精品18videos性欧美| 91精品国产自产在线老师啪| 欧美贵妇videos办公室| 色琪琪综合男人的天堂aⅴ视频| 欧美激情第1页| 色婷婷av一区二区三区在线观看| 亚洲永久免费观看| 国产精品免费一区豆花| 国产日韩在线看片| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产亚洲欧洲高清一区| 国语自产精品视频在免费| 成人综合国产精品| 国内精品久久久| 久久人人看视频| 亚洲自拍高清视频网站| 一区国产精品视频| 亚洲图片在线综合| 午夜精品久久久久久久久久久久| 久久久久久久色| 亚洲级视频在线观看免费1级| 国产精品天天狠天天看| 97超碰国产精品女人人人爽| 中文字幕日韩在线观看| 最近日韩中文字幕中文| 韩剧1988在线观看免费完整版| 5278欧美一区二区三区| 亚洲色图第一页| 成人福利视频在线观看| 精品视频一区在线视频| 2018日韩中文字幕| 最好看的2019年中文视频| 日韩在线观看免费av| 青草青草久热精品视频在线网站| 国产精品久久久久久久久影视| 秋霞午夜一区二区| 亚洲一区二区久久久久久| 92福利视频午夜1000合集在线观看| 国产视频观看一区| 91久久精品国产91久久| 日韩中文有码在线视频| 欧洲成人在线观看| 日韩电影大片中文字幕| 91高清视频免费| 欧美理论电影在线观看| 欧美尺度大的性做爰视频| 伊人青青综合网站| 性欧美xxxx| 91老司机精品视频| 久久国产精品影片| 国产性色av一区二区| 欧美日韩在线另类| 一区二区在线免费视频| 欧美电影免费观看电视剧大全| 亚洲欧美日韩精品久久| 中文字幕在线观看亚洲| 97久久伊人激情网| 国产成人精品a视频一区www| 欧美精品久久久久| 欧美色图在线视频| 奇门遁甲1982国语版免费观看高清| 欧美日韩精品国产| 欧美小视频在线观看| 国产亚洲欧洲高清一区| 日韩中文娱乐网| 精品久久香蕉国产线看观看亚洲| 91精品视频在线播放| 97色在线视频| 欧日韩不卡在线视频| 国产成人免费av| 性欧美长视频免费观看不卡| 福利二区91精品bt7086| 91免费国产视频| 亚洲无亚洲人成网站77777| 久久中文精品视频| 国产精品福利在线观看| 亚洲一区二区免费在线| 久久精品国产亚洲精品| 5566日本婷婷色中文字幕97| 日韩av片免费在线观看| 久久精品电影一区二区| 永久555www成人免费| 国产精品旅馆在线| 成人午夜两性视频| 97在线看免费观看视频在线观看| 国产狼人综合免费视频| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品av电影| 亚洲精品suv精品一区二区| 91日韩在线视频| 亚洲精品91美女久久久久久久| 日韩欧美一区二区三区| 狠狠躁夜夜躁人人爽天天天天97| 91久久精品国产91久久性色| 91精品久久久久久综合乱菊| 91亚洲午夜在线| 欧美第一页在线| 日韩成人免费视频| 欧美日韩另类在线| 91精品国产成人| 亚洲欧洲av一区二区| 国产一区二区欧美日韩| 俺也去精品视频在线观看| 亚洲在线www| 精品动漫一区二区三区| 亚洲欧美日韩在线一区| 亚洲丝袜一区在线| 久久中文字幕视频| 最近2019年日本中文免费字幕| 日本韩国在线不卡| 国产精品99久久久久久白浆小说| 亚洲专区国产精品| 国产精品久久久久久婷婷天堂| 日韩理论片久久| 97成人在线视频| 国产精品久久77777| 日韩av在线影院| www.日韩免费| 欧美日韩在线看| 久久久精品一区二区| 国产做受69高潮| 97香蕉久久超级碰碰高清版| 久久久亚洲国产天美传媒修理工| 国产a级全部精品| 精品调教chinesegay| 亚洲最新视频在线| 精品国产福利视频| 日韩免费在线看| 91成人国产在线观看| 日韩在线观看免费av| 中文字幕日本欧美| 亚洲国产一区自拍| 精品动漫一区二区三区| 欧美激情小视频| 美女扒开尿口让男人操亚洲视频网站| 国产视频在线一区二区| 欧美性猛交99久久久久99按摩| 久久在线视频在线| 欧美激情一区二区三级高清视频| 国产成人亚洲综合| 国产在线视频不卡| 91九色视频在线| 日韩经典一区二区三区| 亚洲国产日韩欧美综合久久| 亚洲精品中文字幕有码专区| 欧美亚洲成人免费| 91人成网站www| 亚洲性猛交xxxxwww| 欧美性xxxxxxxxx| 91国自产精品中文字幕亚洲| 亚洲欧洲在线播放| 欧美一级片在线播放|