从Android设备发送短信

时间:2012-11-25 14:31:06

标签: android multithreading sms

我有一个计算我的位置并在屏幕上打印的课程。 现在我想每隔x次将该地址发送到某个号码。 所以这需要sleep方法我想这意味着我需要一个扩展Thread的类..但是该类如何从另一个类中获取TextView字符串?他们将如何相互联系? 顺便说一下,我在这个论坛的某个地方发现了这个代码,用于发送短信:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("sms:"+ phoneNumber)));

先谢谢!!

2 个答案:

答案 0 :(得分:1)

你可以使用SmsManager,

 String Text = "My location is: " +
    "Latitude = " + current_lat +
    "Longitude = " + current_lng;

    SmsManager sender=SmsManager.getDefault();
    sender.sendTextMessage("9762281814",null,Text , null, null);

答案 1 :(得分:0)

在Async任务中包装与线程相关的内容,并向其传递当前活动的Context参数。这样,您可以在异步任务的Context.findViewById()方法内调用doInBackGround()。这样你甚至不会在主线程上执行任何阻塞操作(将来会引发另一个异常)。

public void SendSmsTask extends AsyncTask<Context, Void, Void> {
  @Override
  protected Void doInBackGround(Context... contexts) {
    for(Context con : contexts) {
      TextView abc = context.findViewById(<textview Id>);
      // send your sms after this
    }
  }
... // remaining functions and logic
}

您可以使用以下命令从您的活动开始此任务:

new SendSmsTask().execute(this);