Android广播接实现监听电话状态(电话的状态,拦
家电修理 2023-07-16 19:17www.caominkang.com电器维修
我们来理解下监听器的机制。
Android的事件处理机制有两种监听和回调。
A基于监听的事件处理
主要涉及三类对象EventSource(事件源),Event(事件),EventListener(事件监听器)
监听机制处理事件的流程图如下(委派式Delegation)
1需要在AndroidManifest.xml清单中添加权限
2注册广播 要注意事件的级别 (android中的级别-1000~1000)
详细配置请看 AndroidManifest.xml
3编写广播的实现类 这里需要继承BroadcastReceiver 实现onReceive()方法
程序的源代码如下
package .zy.broadcastsendsms; import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.TelephonyManager; import android.util.Log; public class PhoneBroadcastReceiver extends BroadcastReceiver { private static final String TAG = "message"; private static boolean mIningFlag = false; private static String mIningNumber = null; @Override public void onReceive(Context context, Intent intent) { // 如果是拨打电话 if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) { mIningFlag = false; String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); Log.i(TAG, "call OUT:" + phoneNumber); } else { // 如果是来电 TelephonyManager tManager = (TelephonyManager) context .getSystemService(Service.TELEPHONY_SERVICE); sitch (tManager.getCallState()) { case TelephonyManager.CALL_STATE_RINGING: mIningNumber = intent.getStringExtra("ining_number"); Log.i(TAG, "RINGING :" + mIningNumber); break; case TelephonyManager.CALL_STATE_OFFHOOK: if (mIningFlag) { Log.i(TAG, "ining ACCEPT :" + mIningNumber); } break; case TelephonyManager.CALL_STATE_IDLE: if (mIningFlag) { Log.i(TAG, "ining IDLE"); } break; } } } }
以上内容给大家介绍了Android广播接实现监听电话状态(电话的状态,拦截)的相关知识!
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工