我正在創建一個簡單的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
我不認爲我收到短信。當我發送測試文本時,應用程序似乎不會攔截它,但是我相信上面的代碼是正確的方式。 –