Android 理解用户在电话中讲话的时间

Android 理解用户在电话中讲话的时间,android,action,broadcast,Android,Action,Broadcast,(安卓)几天前,我看到了一种注册广播接收器的方法,以了解屏幕何时变黑或反转 现在,我想找到一种方法来理解用户何时在打电话,但我没有找到适用于这种情况的广播,因此如何理解用户是否在打电话?(可能不总是运行会使电池放电的服务) 秋明 Valerio我不确定是否要在手机上“讲话”,因为没有API可以检测到这一点,但您可以收听手机状态,如: TelephonyManager telephonyManager = (TelephonyManager)

(安卓)几天前,我看到了一种注册广播接收器的方法,以了解屏幕何时变黑或反转

现在,我想找到一种方法来理解用户何时在打电话,但我没有找到适用于这种情况的广播,因此如何理解用户是否在打电话?(可能不总是运行会使电池放电的服务)

秋明

Valerio

我不确定是否要在手机上“讲话”,因为没有API可以检测到这一点,但您可以收听手机状态,如:

TelephonyManager telephonyManager = (TelephonyManager)
                                       getSystemService(Context.TELEPHONY_SERVICE);

PhoneStateListener listener = new PhoneStateListener() {
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        String stateString = "N/A";
        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                stateString = "Idle";
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                stateString = "Off Hook";
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                stateString = "Ringing";
                break;
        }
    }
};
telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
不要忘记清单中的以下权限:

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