了解用户何时通过电话讲话

时间:2010-10-17 11:17:12

标签: android action broadcast

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

现在我想找到一种方法来了解用户何时通过电话讲话,但我没有找到这种情况的广播,那么我怎么能理解用户是否在手机上? (可能没有总是运行会使电池放电的服务)。

TNK的

瓦莱里奥

1 个答案:

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