如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
在 HYPERLINK"http://www.apkbus.com/"\t"_blank"Android的手机状态中没有未接来电的监听器,所以如果想当手机有未接来电后进行处理,这时候就需要自己对手机的状态判断是未接来电后再进行处理.实现思路:1,继承PhoneStateListener后,当手机的状态改变后将会触发onCallStateChanged.手机的状态分为CALL_STATE_RINGING(响铃中),CALL_STATE_IDLE(空闲),CALL_STATE_OFFHOOK(忙音).2,记录上一次的手机状态,如果的手机现在的空闲,上次的状态响铃中的话,就可以判断是未接来电.不足:1,我现在的处理不能判断出是用户是否主动不接电话.实现步骤:1,编写CallListener,处理手机状态变更监听,当状态改变时进行处理。如果想知道如何在Android发送短信可以看我另一博文[HYPERLINK"http://www.apkbus.com/android-27681-1-1.html"\t"_blank"Android中发送短信(sms)]packagerbase.app.smshelpmate.call.listener;importjava.text.MessageFormat;importrbase.app.smshelpmate.Config;importrbase.app.smshelpmate.R;importrbase.app.smshelpmate.call.enums.CallStateEnum;importrbase.app.smshelpmate.forward.ForwardManager;importrbase.app.smshelpmate.forward.enums.ForwardType;importrbase.app.smshelpmate.forward.vo.ForwardParam;importHYPERLINK"http://www.apkbus.com/"\t"_blank"android.content.Context;importandroid.telephony.PhoneStateListener;importandroid.telephony.TelephonyManager;importandroid.util.Log;/***@authorwww.r-base.net*/publicclassCallListenerextendsPhoneStateListener{privatestaticfinalStringTAG="sms";privatestaticintlastetState=TelephonyManager.CALL_STATE_IDLE;//最后的状态privateContextcontext;publicCallListener(Contextcontext){super();this.context=context;}publicvoidonCallStateChanged(intstate,StringincomingNumber){Log.v(TAG,"CallListenercallstatechanged:"+incomingNumber);Stringm=null;//如果当前状态为空闲,上次状态为响铃中的话,则破觚为认为是未接来电if(lastetState==TelephonyManager.CALL_STATE_RINGING&&state==TelephonyManager.CALL_STATE_IDLE){sendSmgWhenMissedCall(incomingNumber);}//最后的时候改变当前值lastetState=state;}privatevoidsendSmgWhenMissedCall(StringincomingNumber){//...进行未接来电处理(发短信,发email等等通知)}}复制代码2,编写CallReceiver,注册来电广播接收器。packagerbase.app.smshelpmate.call.service;importrbase.app.smshelpmate.Const;importrbase.app.smshelpmate.call.listener.CallListener;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid