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 に答える