android 监听通话状态
时间: 2023-07-22 17:59:34 浏览: 204
在 Android 中,你可以使用 `PhoneStateListener` 类来监听通话状态。下面是一个简单的示例代码:
```java
import android.content.Context;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
public class CallStateListener extends PhoneStateListener {
private static final String TAG = "CallStateListener";
@Override
public void onCallStateChanged(int state, String phoneNumber) {
super.onCallStateChanged(state, phoneNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
Log.d(TAG, "Call state: IDLE");
// 通话结束或挂断
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d(TAG, "Call state: OFFHOOK");
// 通话中
break;
case TelephonyManager.CALL_STATE_RINGING:
Log.d(TAG, "Call state: RINGING");
// 有来电响铃
break;
}
}
}
```
然后,在你的 Activity 或 Service 中注册监听器:
```java
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
CallStateListener callStateListener = new CallStateListener();
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);
```
通过这种方式,你就可以在通话状态发生变化时得到相应的通知。请注意,在 AndroidManifest.xml 文件中要添加相应的权限:
```xml
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
```
希望对你有帮助!如果还有其他问题,请随时提问。
阅读全文