Android P是广播两次来电还是仅仅是我?

时间:2018-07-24 20:14:29

标签: android android-9.0-pie

我有一个应用程序,可以根据黑名单检查来电的电话号码。

我已将以下代码用于多个版本的Android,以获取拨入电话的电话号码,但是当我针对Android P测试该电话时,它的行为异常。

出于可读性考虑,我从下面的代码中删除了所有空检查。

public class IncomingCallHandler extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        String state = intent.getExtras().getString(TelephonyManager.EXTRA_STATE);

        if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)) {

            String phoneNumber = bundle
                .getString(TelephonyManager.EXTRA_INCOMING_NUMBER);

        }
    }
}

在小于P的Android版本上,在传入呼叫期间可能会多次调用状态为EXTRA_STATE_RINGING的onReceive,但是phoneNumber始终具有相同的值(实际传入的电话号码)。

在Android P上,onReceive在传入呼叫期间被调用两次。第一次phoneNumber = null,第二次是实际电话号码。

这是一个错误吗?应该是这样吗?您在应用程序中得到相同的东西吗?

0 个答案:

没有答案