1

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

现在我想找到一种方法来了解用户何时在电话中讲话,但我没有找到适合这种情况的广播,那么我如何了解用户是否在电话中?(可能并不总是运行会使电池放电的服务)。

Tnk的

瓦莱里奥

4

1 回答 1

0

我不确定是否要在电话中“说话”,因为没有 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"/>
于 2011-02-27T02:11:37.910 回答