资源:

listener = new PhoneStateListener()
    {
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            super.onCallStateChanged(state, incomingNumber);
            Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG);
            toast.show();
        }

    };

    ((TelephonyManager)getSystemService(TELEPHONY_SERVICE)).listen(listener , PhoneStateListener.LISTEN_CALL_STATE )

你好,
我正在使用此代码, android.permission.READ_PHONE_STATE 许可,以获取吐司消息,包括开始通话的数量。我的问题是,即将到来的名字是空的,无论呼叫是外向还是不关闭,出现吐司都无关紧要。
我已经看到了一些解决方案,但是解决方案是以完全不同的方式获取数字,我想知道我的代码是否可以用于我的需求。
感谢您的建议
亚当

有帮助吗?

解决方案

请在您的申请中包含许可。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />


if(state == TelephonyManager.CALL_STATE_RINGING){
Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG);
toast.show();
}

CALL_STATE_OFFHOOK 返回null如果第一次呼叫。所以你应该使用 CALL_STATE_RINGING.

希望它对您有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top