내 안드로이드 앱은 메시지를 받으면 먼저 토스트를 표시하고 특정 번호의 메시지를 받으면 다른 토스트를 보여줍니다. 그러나 그것은 두 번째 축배를 표시하지 않습니다. 당신은 잘못된 방법으로 if(senderNum == serverNumber)
을 비교하는Android 앱이 전화 번호를 비교 한 후에 작업을 수행 할 수 없음
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
public class IncomingSms extends BroadcastReceiver {
// Get the object of SmsManager
final SmsManager sms = SmsManager.getDefault();
public void onReceive(Context context, Intent intent) {
// Retrieves a map of extended data from the intent.
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + message, duration);
toast.show();
String serverNumber= "+919886096376";
if(senderNum == serverNumber)
{
Toast toast1 = Toast.makeText(context,"alert message received!!!!",Toast.LENGTH_LONG);
toast.show();
}
} // end for loop
} // bundle is null
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
}
}
@ Varshini,이 솔루션을 사용해 보셨습니까? – Kedarnath
나는 그것을했고 작동한다! 감사! –
@varshinijagannath 반가워요. 천만에요. 당신은 다음 내 대답을 수락 할 수 있습니다 :) 그냥 내 대답 외에 녹색 마크를 틱. – Kedarnath