zoukankan      html  css  js  c++  java
  • 监听电话状态的模板代码

    package com.example.calling;
    import android.app.Service;
    import android.content.Context;
    import android.content.Intent;
    import android.os.IBinder;
    import android.telephony.PhoneStateListener;
    import android.telephony.TelephonyManager;
    
    public class PhoneStatusService extends Service {
       private TelephonyManager tm;
       private MyPhoneStatusListener  mPhoneStatusListener;
       @Override
       public IBinder onBind(Intent intent) {
          return null;
       }
       @Override
       public void onCreate() {
          super.onCreate();
          // 1. 获取手机管理器
          tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
          // 2. 设置监听
          mPhoneStatusListener = new MyPhoneStatusListener();
          tm.listen(mPhoneStatusListener, PhoneStateListener.LISTEN_CALL_STATE);
       }
    
       /**
        * 3. 用内部类实现监听
        * 手机状态监听
        */
       private class MyPhoneStatusListener extends PhoneStateListener {
          //当手机通话状态变化时,回调
          //state  :通话的3中状态
          //incomingNumber:来电号码
          @Override
          public void onCallStateChanged(int state, String incomingNumber) {
             super.onCallStateChanged(state, incomingNumber);
             System.out.println("来电号码:"+incomingNumber);      
             switch (state) {
                case TelephonyManager.CALL_STATE_IDLE://空闲
                    System.out.println("空闲");
                    break;
                case TelephonyManager.CALL_STATE_RINGING://响铃
                    System.out.println("响铃");
                    break;
                case TelephonyManager.CALL_STATE_OFFHOOK://通话
                    System.out.println("通话");
                    break;
                default:
                    break;
             }
          }
       }
       @Override
       public void onDestroy() {
          super.onDestroy();
          //4. 注销监听
          tm.listen(mPhoneStatusListener, PhoneStateListener.LISTEN_NONE);
       }
    }
    
  • 相关阅读:
    linux线程
    linux线程
    c++之堆、栈、数据段、
    fork()、僵死进程和孤儿进程
    linux之管理mysql
    linux之管理apache
    Django 时间与时区设置问题
    Django rest framework:__str__ returned non-string (type NoneType) 真正原因
    Django获取当前页面的URL——小记
    Django中出现:TemplateDoesNotExist at
  • 原文地址:https://www.cnblogs.com/loaderman/p/6416153.html
Copyright © 2011-2022 走看看