我正在創建一個接收SMS文本消息的應用程序,我創建了一個擴展BroadcastReceiver以在應用程序內的祝酒中接收和顯示SMS消息的類。我也添加了權限,我的清單以及接收者的聲明。問題是它似乎仍然沒有顯示消息。它只會顯示在頂欄上作爲通知。希望有人能夠看到我出錯的地方。爲了顯示消息,我必須在主要活動中使用一些代碼嗎?或者它應該顯示在我的所有活動中,直接從接收器中獲取?下面的代碼:在我的應用程序中接收SMS消息
UPDATE
我結束了我的刪除接收機和重建的一切,現在它似乎做工精細
SmsReceiver.java:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras ==null)
return;
//toast
Toast.makeText(context, "Received", Toast.LENGTH_LONG).show();
Object[] pdus = (Object[]) extras.get("pdus");
for (int i = 0; i < pdus.length; i++) {
SmsMessage SMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
String sender = SMessage.getOriginatingAddress();
String body = SMessage.getMessageBody().toString();
Intent in = new Intent("SmsMessage.intent.MAIN").putExtra("get_msg", sender+":"+body);
context.sendBroadcast(in);
this.abortBroadcast();
}
}
}
任何日誌? – njzk2
烘烤通常不能從BroadcastReceiver中顯示(除非它是一個流程的一部分,它也恰好具有可見的活動)。改用通知。 – 323go
那麼它可以將消息放入一個全局變量然後顯示在我的主要活動? –