如何只从PhoneStateListener获取活动调用

时间:2010-09-14 22:01:28

标签: android

我想只从PhoneStateListener获得活动调用。 我用方法onCallStateChanged创建了监听器。 一旦我拨打(并且接听电话),状态已经摘机。

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

但有可能只接听有效电话吗? 日Thnx!

1 个答案:

答案 0 :(得分:-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"/>

希望有所帮助