电话 phone 状态比较不正确?
Telephony phone state not comparing correctly?
在 if 语句中将 TelephonyManager.EXTRA_STATE
与 TelephonyManager.EXTRA_STATE_RINGING
进行比较时,表示它们本应相同但不同。
记录 EXTRA_STATE
和 EXTRA_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 中的字符串与 ==
进行比较,您需要使用 .equals()
来代替。
例如
if (TelephonyManager.EXTRA_STATE_RINGING.equals(intent.getExtras().getString(TelephonyManager.EXTRA_STATE))) { ... }
在此处阅读更多内容:https://www.geeksforgeeks.org/difference-equals-method-java/
在 if 语句中将 TelephonyManager.EXTRA_STATE
与 TelephonyManager.EXTRA_STATE_RINGING
进行比较时,表示它们本应相同但不同。
记录 EXTRA_STATE
和 EXTRA_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 中的字符串与 ==
进行比较,您需要使用 .equals()
来代替。
例如
if (TelephonyManager.EXTRA_STATE_RINGING.equals(intent.getExtras().getString(TelephonyManager.EXTRA_STATE))) { ... }
在此处阅读更多内容:https://www.geeksforgeeks.org/difference-equals-method-java/