2013-05-08 40 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