2012-11-25 97 views
0

我有一個課程可以計算我的位置並將其打印在屏幕上。 現在我想每隔x次發送一個短信給該地址一定數量的短信。 因此,這需要sleep方法,我猜這意味着我需要一個擴展Thread類的類,但該類如何從另一個TextView字符串中取出呢?他們將如何相互連接? 順便說一句,我發現這個代碼在某處這個論壇發送短信:從android設備發送短信

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

在先進的感謝!

+0

我在做類似的東西在這裏! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42

回答

1

可以使用SmsManager,

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

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

這是一個很好的方式發送短信,但我需要每x次發送一個短信,這意味着它必須通過一個線程。 –

+0

好吧,我通過發送類引用發送短信,然後它可以獲取TextView文本來完成它。謝謝。 –

0

包裝你主題相關的東西在一個異步任務,並把它傳遞當前活動的上下文參數。這樣,您可以在異步任務的doInBackGround()方法內調用Context.findViewById()。這樣,你甚至不會在主線程上執行任何阻塞動作(這會導致你在將來出現另一個異常)。

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);