2013-05-08 90 views
1

截至目前這裏是我所擁有的。然而,客戶現在想知道是否實際發送了短信,並且在發送按鈕被點擊後,他們想要返回到該應用。Android發送和收聽短信正在發送

你會如何聽取短信是否被髮送?它會在活動結果()? 你會如何告訴短信客戶端發送後退出? 我是否只需要自己創建發送短信的屏幕,並直接發送短信而無需啓動短信應用?

public static void launchSMSIntent(String to, String body, Context context) 
    { 
     Intent smsIntent = new Intent(Intent.ACTION_VIEW); 
     smsIntent.setType("vnd.android-dir/mms-sms"); 
     if(to != null) 
      smsIntent.putExtra("address", to); 
     if(body != null) 
      smsIntent.putExtra("sms_body", body); 
     ((Activity)context).startActivityForResult(smsIntent, Constants.SMS_INTENT); 
    } 

回答

2

如果您需要偵聽正在發送的短信,您需要通過android.telephony.SMSManager apis自行完成。沒有辦法保證用戶使用隨機短信應用程序將返回一個標誌,告訴你它是否被髮送。

+0

我明白,正如你所說,「任何舊的隨機應用程序」做發送不會通知這一點。但是現在有沒有機會,例如內置的消息應用程序,或者「就在三星上」!或者事實上通知是否實際發送了一條短信?任何想法?歡呼和感謝! – Fattie 2014-06-24 14:21:49

+1

您可以閱讀SMS上下文提供程序,可以從中獲取所有發送的消息。在啓動意圖後,每隔30秒檢查一次,持續5分鐘。如果你發送了一段特定的文本,但如果他們關掉電話並稍後再回來,它們會錯過一些。如果你不是,你可以看看時間戳,看看它是否在活動發佈後不久發生。但是,這將有一個適度的高假陽性率以及假陰性。 – 2014-06-24 15:12:08

+0

這是一個令人着迷的提示@加貝,謝謝!我將着眼於閱讀SMS上下文提供者,並瞭解如何獲取所有發送的消息。乾杯!! – Fattie 2014-06-25 06:14:32