我正在创建一个简单的Android应用程序,我试图拦截传入的短信。我遇到的问题是来自onReceive的吐司消息没有显示出来。请帮忙!吐司不显示在短信接收Android应用程序
感谢,
以赛亚·汤普森
public class SMSR extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//Print Message
Toast.makeText(context,"Received Message Start",Toast.LENGTH_SHORT).show();
// Get the data (SMS data) bound to intent
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null) {
// Retrieve the SMS Messages received
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
// For every SMS message received
for (int i = 0; i < msgs.length; i++) {
// Convert Object array
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
// Sender's phone number
str += "SMS from " + msgs[i].getOriginatingAddress() + " : ";
// Fetch the text message
str += msgs[i].getMessageBody().toString();
// Newline <img draggable="false" class="emoji" alt="" src="https://s.w.org/images/core/emoji/72x72/1f642.png">
str += "\n";
}
}
//Print Message
Toast.makeText(context,"Received Message End",Toast.LENGTH_SHORT).show();
Toast.makeText(context,str,Toast.LENGTH_SHORT).show();
}
}
不要使用'Toast'进行调试。改用'Log.d'。另外 - 你确定你收到短信 – Rahel
有很多移动件。检查这个答案的详细指南。 https://stackoverflow.com/a/11436473/6051131 – Rahel
我不认为我收到短信。当我发送测试文本时,应用程序似乎不会拦截它,但是我相信上面的代码是正确的方式。 –