如何检测拨出呼叫中的已接听或拒绝状态

Ami*_*azi 5 android call broadcastreceiver telephonymanager phone-state-listener

我尝试为 android 编写一个程序。我想用我的程序拨打电话,然后识别通话状态。使用 Flowing Function,我可以识别挂出状态,对于应答状态,它不起作用。我尝试这个函数,但它也不起作用

\n\n
private class PhoneCallListener extends PhoneStateListener {\n\n    private boolean isPhoneCalling = false;\n\n    String LOG_TAG = "LOGGING 123";\n\n    @Override\n    public void onCallStateChanged(int state, String incomingNumber) {\n\n        if (TelephonyManager.CALL_STATE_RINGING == state) {\n            // phone ringing\n            Log.i(LOG_TAG, "RINGING, number: " + incomingNumber);\n        }\n\n        if (TelephonyManager.CALL_STATE_OFFHOOK == state) {\n            // active\n            Log.i(LOG_TAG, "OFFHOOK");\n\n            isPhoneCalling = true;\n        }\n\n        if (TelephonyManager.CALL_STATE_IDLE == state) {\n            // run when class initial and phone call ended, need detect flag\n            // from CALL_STATE_OFFHOOK\n            Log.i(LOG_TAG, "IDLE");\n\n            if (isPhoneCalling) {\n\n                Log.i(LOG_TAG, "restart app");\n\n                // restart app\n                Intent i = getBaseContext().getPackageManager()\n                        .getLaunchIntentForPackage(\n                                getBaseContext().getPackageName());\n                i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);\n                startActivity(i);\n\n                isPhoneCalling = false;\n            }\n\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Dan*_*Pop -2

您不能使用 CALL_STATE_IDLE 和 CALL_STATE_OFFHOOK 来执行此操作。您必须以编程方式检测传出铃声的结尾...

  • 多谢 。我怎样才能做到这一点? (2认同)