【问题标题】:Unable to get non-empty string from PhoneStateListener::onCallStateChanged无法从 PhoneStateListener::onCallStateChanged 获取非空字符串
【发布时间】:2010-12-10 18:49:12
【问题描述】:

来源:

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 权限的此代码来获取包括已启动呼叫数量在内的吐司消息。我的问题是incomingNumber是空的,不管是呼出还是呼入,toast都会出现,但是是空的。
我已经看到了一些解决方案,但解决方案是用完全不同的方式获取号码,我想知道我的代码是否可以满足我的需求。
感谢您的建议,
亚当

【问题讨论】:

标签: android telephonymanager


【解决方案1】:

请在您的申请中包含权限。

<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

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 2016-07-30
    • 2019-10-27
    相关资源
    最近更新 更多