Android實現(xiàn)判斷手機未接來電及處理方法
通常來說Android手機沒有未接來電的監(jiān)聽器,如果要實現(xiàn)對未接來電的處理,則需要自己編寫程序來實現(xiàn)。本文所述程序?qū)嵗礊锳ndroid實現(xiàn)判斷手機未接來電及處理方法。主要分為四個步驟來進(jìn)行:
1、編寫CallListener,處理手機狀態(tài)變更監(jiān)聽,當(dāng)狀態(tài)改變時進(jìn)行處理:
package rbase.app.smshelpmate.call.listener;
import java.text.MessageFormat;
import rbase.app.smshelpmate.Config;
import rbase.app.smshelpmate.R;
import rbase.app.smshelpmate.call.enums.CallStateEnum;
import rbase.app.smshelpmate.forward.ForwardManager;
import rbase.app.smshelpmate.forward.enums.ForwardType;
import rbase.app.smshelpmate.forward.vo.ForwardParam;
import android.content.Context;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
public class CallListener extends PhoneStateListener {
private static final String TAG = "sms";
private static int lastetState = TelephonyManager.CALL_STATE_IDLE; //最后的狀態(tài)
private Context context;
public CallListener(Context context) {
super();
this.context = context;
}
public void onCallStateChanged(int state, String incomingNumber) {
Log.v(TAG, "CallListener call state changed : " + incomingNumber);
String m = null;
// 如果當(dāng)前狀態(tài)為空閑,上次狀態(tài)為響鈴中的話,則認(rèn)為是未接來電
if(lastetState == TelephonyManager.CALL_STATE_RINGING
&& state == TelephonyManager.CALL_STATE_IDLE){
sendSmgWhenMissedCall(incomingNumber);
}
//最后改變當(dāng)前值
lastetState = state;
}
private void sendSmgWhenMissedCall(String incomingNumber) {
//未接來電處理(發(fā)短信,發(fā)email等)
}
}
2、編寫CallReceiver,注冊來電廣播接收器:
package rbase.app.smshelpmate.call.service;
import rbase.app.smshelpmate.Const;
import rbase.app.smshelpmate.call.listener.CallListener;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
public class CallReceiver extends BroadcastReceiver{
public void onReceive(Context context, Intent intent) {
Log.i("sms", "CallReceiver Start...");
TelephonyManager telephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
CallListener customPhoneListener = new CallListener(context);
telephony.listen(customPhoneListener,
PhoneStateListener.LISTEN_CALL_STATE);
Bundle bundle = intent.getExtras();
String phoneNr = bundle.getString("incoming_number");
Log.i("sms", "CallReceiver Phone Number : " + phoneNr);
}
}
3、在AndroidManifest.xml中的application節(jié)點下注冊電話狀態(tài)改變的廣播接收:
<manifest ...> <application ...> <receiver android:name=".call.service.CallReceiver"> <intent-filter android:priority="100"> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> </application> </manifest>
4、在AndroidManifest.xml中添加讀取手機狀態(tài)的權(quán)限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
通過以上的步驟,當(dāng)手機有未接來電時 sendSmgWhenMissedCall 該方法就會觸發(fā),就可以進(jìn)行相應(yīng)的處理。
- android項目手機衛(wèi)士來電顯示號碼歸屬地
- Android監(jiān)聽來電和去電的實現(xiàn)方法
- Android6.0來電號碼與電話薄聯(lián)系人進(jìn)行匹配
- Android監(jiān)聽手機電話狀態(tài)與發(fā)送郵件通知來電號碼的方法(基于PhoneStateListene實現(xiàn))
- Android中監(jiān)聽未接來電的2種方法
- Android實現(xiàn)獲取未接來電和未讀短信數(shù)量的方法
- android在root模式下接聽來電的方法
- android實現(xiàn)來電靜音示例(監(jiān)聽來電)
- android 電話狀態(tài)監(jiān)聽(來電和去電)實現(xiàn)代碼
- Android來電攔截的實現(xiàn)方法
相關(guān)文章
Android實現(xiàn)點匯聚成字的動態(tài)效果詳解
在引入?fl_chart?繪制圖表的時候,看到插件有下面這樣的動效,隨機散亂的圓點最后組合成了?Flutter?的?Logo,挺酷炫的。本篇我們來探討類似的效果怎么實現(xiàn)2022-07-07
實例講解Android應(yīng)用中自定義組合控件的方法
這篇文章主要介紹了實例講解Android應(yīng)用中自定義組合控件的方法,通過例子講解了view組合控件及自定義屬性的用法,需要的朋友可以參考下2016-04-04
Android WebView與JS交互全面詳解(小結(jié))
本篇文章主要介紹了Android WebView與JS交互全面詳解(小結(jié)),實現(xiàn)了Android客戶端與Web網(wǎng)頁交互,具有一定的參考價值,有興趣的可以了解一下2017-11-11
Android添加ButterKnife時報錯Error:(2, 0) Cannot add extension wit
今天小編就為大家分享一篇關(guān)于Android添加ButterKnife時報錯Error:(2, 0) Cannot add extension with name 'android'的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
Android 跨進(jìn)程SharedPreferences異常詳解
這篇文章主要介紹了Android 跨進(jìn)程SharedPreferences異常詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android添加用戶組及自定義App權(quán)限的方法
今天小編就為大家分享一篇Android添加用戶組及自定義App權(quán)限的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07

