(Android)前几天我看到了一种注册广播接收器的方法,以了解屏幕何时变黑或反之。
现在我想找到一种方法来了解用户何时通过电话讲话,但我没有找到这种情况的广播,那么我怎么能理解用户是否在手机上? (可能没有总是运行会使电池放电的服务)。
TNK的
瓦莱里奥
答案 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"/>