導航:首頁 > 操作系統 > android打電話監聽

android打電話監聽

發布時間:2022-09-27 07:33:38

android開發怎麼監控來電並監聽

實現如下廣播,並且在AndroidManifest中進行注冊

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;
}
}

❷ android 怎麼監聽去電接通瞬間

如果是別人打過來的
還能判斷,如果是你打過去的接通瞬間就不大好搞了。我說下打來的接通瞬間吧。有三種狀態
ringing
offhook
idleringing
:
響鈴,offhook
:
摘機idle

掛機所以
當ring
然後在
offhook
那肯定是對方打來並且你接通。

❸ 如何實現android中監聽來電並生成懸浮窗體提示

這個需求的思路很簡單就是監聽來電 並且懸浮提示

不過這個懸浮提示有很多種呈現方式
可以用dialog懸浮 參考鏈接 http://blog.csdn.net/kkkkkxiaofei/article/details/17242953
此懸浮方式的優點是快速簡單

可以用activity懸浮 參考鏈接 http://blog.jobbole.com/65531/
此懸浮方式是方便做一些需要activity生命周期功能的功能

可以用window懸浮 參考鏈接 http://www.cnblogs.com/mengdd/p/3824782.html
此懸浮方式的優點是不與任何app的界面關聯完全獨立 甚至可以直接出現到launcher中

監聽來電需要2個廣播
來電action為TelephonyManager.ACTION_PHONE_STATE_CHANGED
去電action為Intent.ACTION_NEW_OUTGOING_CALL
參考鏈接:http://www.cnblogs.com/pen-ink/archive/2010/12/20/1911957.html

❹ Android 來電監聽

把你完整log發上來看看啊

❺ Android撥號電話被接起瞬間監聽回調函數是哪個

mPhone = PhoneFactory.getDefaultPhone();
mPhone.(mCallHandler, PHONE_STATE_CHANGED, null);
注冊以上函數即可,mCallHandler是一個Handler,電話狀態改變時會回調:
private Handler mCallHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case PHONE_STATE_CHANGED:
XXXXXXXXX(); //在此根據Call.State.XXX狀態來做相應處理
break;
}
}
};
註:需在源碼編譯,ECLIPSE下無 PhoneFactory類

❻ android 怎麼監聽去電接通瞬間

嘿嘿。我寫過。是用於電話監聽設備的。自己寫著玩的。不過這個東西不能給你 不好意思

❼ 如何實現android中監聽來電並生成懸浮窗體提示

android.permission.READ_PHONE_STATE"許可權
Xml代碼
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

還需要注冊來電監聽,目前我的處理方式是接收開機廣播,然後在接收到廣播後注冊來電監聽。接收開機廣播需要有「android.permission.RECEIVE_BOOT_COMPLETED」許可權,manifest中申明如下
java代碼
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

然後注冊廣播接收類

Xml代碼
<receiver android:name=".PhoneBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
PhoneBootReceiver中注冊監聽來電,首先得獲取系統服務「TELEPHONY_SERVICE」

Java代碼
TelephonyManager telM = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
然後添加監聽

Java代碼
telM.listen(new TelListener(context), PhoneStateListener.LISTEN_CALL_STATE);
TelListener是自己定義的電話狀態監聽類,繼承自PhoneStateListener,監聽來電只需要實現onCallStateChanged(int

state, String incomingNumber)方法。
咳咳...標題上說了彈出懸浮窗口,其實懸浮窗口就是在WindowManager中添加一個View,這個功能我也是在TelListener實現的。要想實現懸浮窗口,首先得有「android.permission.SYSTEM_ALERT_WINDOW」的許可權,在manifest中申明如下:
Xml代碼
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
WindowManager需要通過context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
來獲取。
先把TelListener源碼放出來,再詳解
Xml代碼
public class TelListener extends PhoneStateListener {
private Context context;

private WindowManager wm;
private TextView tv;
public TelListener(Context context){
this.context = context;
}
@Override
public void onCallStateChanged(int state, String incomingNumber) {
// TODO Auto-generated method stub
super.onCallStateChanged(state, incomingNumber);
if(state == TelephonyManager.CALL_STATE_RINGING){
wm = (WindowManager)context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;

params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
<span style="white-space: pre;"> </span>params.format = PixelFormat.RGBA_8888;
tv = new TextView(context);
tv.setText("這是懸浮窗口,來電號碼:" + incomingNumber);
wm.addView(tv, params);

}else if(state == TelephonyManager.CALL_STATE_IDLE){
if(wm != null){
wm.removeView(tv);
}
}
}
}
state

= TelephonyManager.CALL_STATE_RINGING表示有新的來電,state =
TelephonyManager.CALL_STATE_IDLE表示電話中斷(可能理解不是很准確,電話掛斷的時候state會和TelephonyManager.CALL_STATE_IDLE相等)
定義窗口布局

Java代碼
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
設置窗口類型在所有窗口之上
Java代碼
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
別忘了
Java代碼
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
如果沒有這句話的話,在生成懸浮窗口後,懸浮窗口後的界面上東西都不能點。這句話的目的是讓懸浮窗口失去焦點。
背景透明
Java代碼
params.format = PixelFormat.RGBA_8888;
本例中懸浮窗口只是顯示一個TextView其內容為「這是懸浮窗口,來電號碼:xxxxxx」,最後將TextView添加到窗體中
Java代碼
wm.addView(tv, params);
在電話中斷後將TextView移除,否則會一直顯示的...
Java代碼
wm.removeView(tv);
啦..本文就到這兒了...
「啥?要可移動的?」
要想可以拖動的話,那給TextView添加setOnTouchListener,實現OnTouchListener的onTouchListener方法。
Java代碼
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
修改為
Java代碼
params.type = WindowManager.LayoutParams.TYPE_PHONE;
因為TYPE_SYSTEM_OVERLAY的話是TextView獲取不到輸入焦點,也就沒法拖動了哈。

❽ 安卓開發:監聽來電事件

//下面的一個demo可以監聽通話時間,可以寫在Service裡面,啟動Service的時候同時注冊一下廣播接收器,如果不懂得可以查一下關於廣播接收器(BroadcastReceiver)的資料,還有記得在配置文件裡面注冊服務和廣播接收器


importandroid.content.BroadcastReceiver;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.telephony.TelephonyManager;
importandroid.util.Log;

{

privatefinalStringTAG=MyBroadcastReceiver.TAG;

@Override
publicvoidonReceive(Contextcontext,Intentintent){
Stringaction=intent.getAction();
Log.i(TAG,"[Broadcast]"+action);

//呼入電話
if(action.equals(MyBroadcastReceiver.B_PHONE_STATE)){
Log.i(TAG,"[Broadcast]PHONE_STATE");
doReceivePhone(context,intent);
}
}

/**
*處理電話廣播.
*@paramcontext
*@paramintent
*/
publicvoiddoReceivePhone(Contextcontext,Intentintent){
StringphoneNumber=intent.getStringExtra(
TelephonyManager.EXTRA_INCOMING_NUMBER);
TelephonyManagertelephony=
(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
intstate=telephony.getCallState();
switch(state){
caseTelephonyManager.CALL_STATE_RINGING:
Log.i(TAG,"[Broadcast]等待接電話="+phoneNumber);
break;
caseTelephonyManager.CALL_STATE_IDLE:
Log.i(TAG,"[Broadcast]電話掛斷="+phoneNumber);
break;
caseTelephonyManager.CALL_STATE_OFFHOOK:
Log.i(TAG,"[Broadcast]通話中="+phoneNumber);
break;
}
}
}

❾ 手機被監聽有什麼異常

手機被監聽會出現的異常情況如下:

1、撥打你自己的手機號碼

正常情況下,這種通話情況是無法接通的,會有「您撥打的用戶正忙」或「對方正在通話」的語音提示。但如果接通了,就意味著你的手機可能被監聽了。

2、打電話自動接聽

如果對方打電話給你,你什麼都不做,手機會自動接聽。這要麼是手機抽風了,要麼是因為手機安裝了監控軟體,界面由軟體操作。前一種可能性可能出現在老款Android手機上,但在今天的大內存手機上基本不可能,所以最終的結果是顯而易見的。

3、手機突然卡頓

手機卡頓是一種不可避免的情況,但現在使用手機兩年左右不會出現卡頓,這是一種普遍現象。但如果你在手機上安裝了一些不知名的軟體,如果在使用手機的過程中突然卡頓,就意味著你的手機很可能被病毒監控了。

4、打電話出現迴音

正常通話時,只要不在信號覆蓋極差的山谷或地下室,或者耳機正常,就不會有回聲或噪音。但如果它出現了,你應該小心,並迅速掛斷,因為你的手機很可能已被他人監聽。

5、異常流量消耗

如果正常使用手機應用,就不會出現流量高峰,但是當手機被監控時,一些監控軟體的存在主要是為了竊取文件,所以在這個過程中會出現流量消耗異常。

6、通訊錄聯系人突變

如果發現手機通訊錄內的聯系人忽然多出幾個陌生人名單,就是被監聽了。

7、來歷不明的消費賬單出現在手機上

按理說,你手機卡的月消費應該非常清楚,比如套餐費、額外流量費和通話費。但如果某個月話費突然上漲,或者一些來歷不明的話費消費,很可能植入手機的木馬病毒就是惡意消費。

8、手機按鍵變得緩慢

這種情況也需要小心,即鍵盤打字延遲很高,要等2-3秒才會出現要打的字體,這種情況就很有可能是被裝了木馬病毒,影響了手機的正常運行。

閱讀全文

與android打電話監聽相關的資料

熱點內容
倫理電影飛在天上的船 瀏覽:224
求個網址能在線看 瀏覽:548
美國古埃及電影 瀏覽:77
韓國電影成人學院演員有誰 瀏覽:956
美國大胸電影 瀏覽:139
主角重生老北京的小說 瀏覽:199
邵氏100部恐怖影片 瀏覽:100
青春期2裡面的跳舞的歌 瀏覽:36
國產動作愛情片 瀏覽:419
韓國有部特種兵與護士的電影 瀏覽:661
《貪婪》中的日本女演員 瀏覽:477
男主得艾滋病的電影 瀏覽:806
罪孽船長泰國版在線觀看 瀏覽:193
外國電影一個黑男孩在深林 瀏覽:902
叔嫂不倫之戀電影 瀏覽:211
溫暖溫柔是哪部小說 瀏覽:203
穿越抗戰自立為軍閥的小說 瀏覽:601
韓國強殲電影有哪些 瀏覽:291
一女二三男小說穿越文 瀏覽:824
台灣用哪個軟體看電視 瀏覽:365