现在,我的联系人选择器返回了联系人的电话号码。我试图将该号码与来电号码相匹配,如果它相等则将音量增加到最大值。我不太明白。任何帮助??
这是我的代码。 “number”是我的联系人选择器返回的号码。
public class phoneStateListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber){
switch(state){
case TelephonyManager.CALL_STATE_RINGING:
break;
}
}
public class broadCastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
PhoneStateListener PhoneListener = new PhoneStateListener();
telephony.listen(PhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
Bundle bundle = intent.getExtras();
String phoneNr= bundle.getString("incoming_number");
if (phoneNr == number){
amanager.setStreamVolume(AudioManager.STREAM_RING, 7, AudioManager.FLAG_ALLOW_RINGER_MODES|AudioManager.FLAG_PLAY_SOUND);
}
}
答案 0 :(得分:0)
在我的评论中,我是一个自作聪明,开玩笑说如何比较字符串,但看着你的代码,事实证明这是一个显着的建议。我不确定number
是什么(我在代码示例中没有看到),但由于phoneNr
是一个字符串,我假设number
也是。在java中,您将字符串相等性与==
进行比较,而不是使用String' s equals()
布尔方法。 ==
比较了记忆空间,所以你要检查他们是否都指向同一个String对象,而这些对象几乎肯定不是,即使他们不是你也不是在意。