所以我有這個非常簡單的應用程序。它將加密的SMS消息發送到指定的電話號碼。它的工作方式很好,但我遇到的問題是找到一種方法讓接收到的消息自動顯示在消息日誌中。如果有新消息可用,我正確地有一個「刷新」按鈕來更新消息日誌。我不想使用刷新按鈕,我希望消息在收到時簡單顯示。如何在Android SMS應用程序中收到消息時自動顯示消息?
應用程序的工作方式是,它需要從文本框發送消息並加密它。然後它發送消息並在收到時解密並存儲在變量中並顯示在消息日誌中(在按「刷新」之後)。
我已經在谷歌上嘗試了很多搜索,但找不到有用的東西,因爲這些詞太有道理。我通常會找到不能接收消息的人的鏈接,或者只是鏈接下載消息應用程序。
這是我的一些代碼。這是接收短信部分。
public class SmsReceiver extends BroadcastReceiver
{
public static String decrypted = "";
@Override
public void onReceive(Context context, Intent intent)
{
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str ="";
String info = "";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
info += "SMS from " + msgs[i].getOriginatingAddress();
info += " : ";
str += msgs[i].getMessageBody().toString();
if (i==msgs.length-1 && MainActivity.locked == true){
try {
decrypted = AESHelper.decrypt(MainActivity.seed, str);
} catch (Exception e) {
e.printStackTrace();
}
MainActivity.rand = Math.random();
MainActivity.seed = String.valueOf(MainActivity.rand);
decrypted = info + decrypted;
info = "";
MainActivity.locked = false;
}
}
}
所以,在我的主要活動,我有刷新按鈕設置檢查decrypted
長度。如果長度爲decrypted
> 0,則我將decrypted
的內容顯示在消息日誌中。
處理程序對象像魅力一樣工作。多謝了朋友。 – Restnom