无法从PhoneStateListener :: onCallStateChanged获取非空字符串

Ada*_*ocz 6 android telephonymanager

资源:

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 )
Run Code Online (Sandbox Code Playgroud)

嗨,
我正在使用此代码,获得android.permission.READ_PHONE_STATE许可,获取包括已启动呼叫号码在内的Toast消息.我的问题是incomingNumber是空的,如果呼叫是传出或接收,吐司出现,但空是无关紧要.
我已经看到了一些解决方案,但解决方案是以完全不同的方式获取数字,我想知道我的代码是否可以用于我的需求.
感谢您的建议,
亚当

Coo*_*חמד 2

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

<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();
}
Run Code Online (Sandbox Code Playgroud)

CALL_STATE_OFFHOOK如果是第一次调用则返回 null。所以你应该使用CALL_STATE_RINGING.

希望它能帮助你。