【问题标题】:Telephony phone state not comparing correctly?电话状态没有正确比较?
【发布时间】:2019-11-11 18:13:59
【问题描述】:

在 if 语句中比较 TelephonyManager.EXTRA_STATETelephonyManager.EXTRA_STATE_RINGING 时,如果它们应该相同,则它们是不同的。

记录 EXTRA_STATEEXTRA_STATE_RINGING 它给了我相同的响应,它们都是“RINGING”我也尝试将它直接与文本“RINGING”进行比较

在 OnReceive 中

        Log.d("DebugData", intent.getExtras().getString(TelephonyManager.EXTRA_STATE));
        Log.d("DebugData", TelephonyManager.EXTRA_STATE_RINGING);
        if (intent.getExtras().getString(TelephonyManager.EXTRA_STATE) == TelephonyManager.EXTRA_STATE_RINGING) {
            Log.d("DebugData", "The Phone is ringing");
        } else {
            // Do Nothing
        }

我希望比较输出真,但它输出假。

【问题讨论】:

    标签: java android telephonymanager


    【解决方案1】:

    您不能将 Java 中的字符串与 == 进行比较,您需要改用 .equals()

    例如

    if (TelephonyManager.EXTRA_STATE_RINGING.equals(intent.getExtras().getString(TelephonyManager.EXTRA_STATE))) { ... }
    

    在此处阅读更多信息:https://www.geeksforgeeks.org/difference-equals-method-java/

    【讨论】:

    • 有趣,我从来不知道这个。仍然是 java 的初学者,但有兴趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多