【问题标题】:how to get only active calls from PhoneStateListener如何仅从 PhoneStateListener 获取活动呼叫
【发布时间】:2021-07-15 10:08:50
【问题描述】:

我想只收到来自 PhoneStateListener 的活动呼叫。 我已经使用 onCallStateChanged 方法创建了侦听器。 一旦我拨号(并接听电话),状态就已经摘机。

嗯,这并不让我感到惊讶,因为API 中的文字: 设备通话状态:摘机。至少存在一个正在拨号、活动或保持的呼叫,并且没有呼叫正在振铃或等待。

但是有没有可能只收到活跃的电话?

【问题讨论】:

    标签: android


    【解决方案1】:

    根据我在 nexus 上的尝试,主动呼叫唤醒 CALL_STATE_OFFHOOK, 尝试使用日志文件查看步骤。

    试试这个..

    private PhoneStateListener mPhoneListener = new PhoneStateListener() {
    public void onCallStateChanged(int state, String incomingNumber) {
            switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
                    Log.d(TAG, "ringing goes here");
                    break;
    
            case TelephonyManager.CALL_STATE_OFFHOOK:
                    Log.d(TAG, "Active call goes here");
                    break;
                    
            case TelephonyManager.CALL_STATE_IDLE:
                                    Log.d(TAG, "CALL STATE IDLE goes here");
                    break;
             default:
                    Log.d(TAG, "Unknown state=" + state);
            }
    }
    

    然后调用它:

     @Override
       public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
            TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
            tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
    }
    

    不要忘记为您的 Mainifest 文件添加权限:

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-30
      • 2014-11-08
      • 1970-01-01
      相关资源
      最近更新 更多