(Android)数日前、画面が真っ暗になるか、その逆になるかを理解するために、放送受信機を登録する方法を見ました。
ここで、ユーザーが電話で話している時間を理解する方法を見つけたいのですが、この場合のブロードキャストが見つかりません。ユーザーが電話を使用しているかどうかをどのように理解できますか?(おそらく、バッテリーを放電するサービスを常に実行しなくても)。
Tnkの
バレリオ
それを検出する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"/>