2010-06-03 137 views
5

我已經完成了我的研究,並發現有很多人從意圖啓動短信應用程序,事情是人們通常傾向於只爲傳出消息執行此操作。從我自己的應用程序開始短信活動@ ConversarionList.class

我目前在我的應用程序中顯示未讀的短信計數,但它接縫我無法獲得正確的工作意圖。

在每一個嘗試,我得到相同的結果,它啓動應用程序,但一個新的短信......

我目前的意圖看起來像這樣

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("sms:")); 
startActivity(intent); 

,它的結果是:

Android sms Aplication form http://img291.imageshack.us/img291/1330/22012196.png

  • 編輯:帕拉 - >要
  • Escribir mensaje - >寫信息
  • 投遞 - >發送

我希望我對此很清楚。

的問題是:

如何我可以通過一個Intent到Android手機上的短信應用程序的收件箱?


編輯:我只是想複製這樣的:

startActivity(new Intent(this, ConversationList.class)); 

至極我從:http://www.google.com/codesearch/p?hl=en#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE:2028

在自己的應用程序。但我似乎無法讓它工作。

回答

2

什麼是SetClassName?

爲了啓動位於當前應用程序之外的類,我們需要聲明一些類似於「完整路徑」的東西...

爲了打開,我們需要做這個默認的SMS應用@ConversationList:

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList"); 

來源:

1
  1. 首先,看看不同的意圖和lanch選項。你可以看到我對similar question的回答。您的代碼將使用StartActivityForResult()調用某些內容。那是一個更難的問題。

  2. 如果你很幸運,你可以從消息傳遞應用程序中找到一個INTENT狀態。您可能不會,因爲沒有保證手機會使用系統默認值。畢竟,當接收到短信時,它將被放入一些消息數據庫中,並且只有根據消息應用程序邏輯纔是'新'。出於安全原因,該數據庫不共享。您可能要對此評論feature request

  3. 你可以編寫自己的應用程序,抓住'新SMS'的意圖,然後發送它,也許。請參閱somewhat old tutorial

祝你好運!讓我們知道你是否有進步。

+0

我相信我們在這裏談論兩件不同的事情。 我只是想複製這個: startActivity(new Intent(this,ConversationList.class)); 我從:http://www.google.com/codesearch/p?hl=zh-CN#dp7z08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE:2028 我自己的應用程序。但我似乎無法讓它工作。 謝謝先進。 – 2010-06-04 14:21:41

+0

對不起,我不明白你的問題。 – 2010-06-04 22:13:44

+0

我做了一個應用程序,顯示用戶未讀短信的數量。我的想法是將該計數器「鏈接」到默認的短消息應用程序。 問題是:我無法獲得默認的短信應用程序以開始在ConversationList活動。 PS:ConversationList活動是默認短信應用程序的主屏幕。 – 2010-06-05 23:12:25

-2

意向smsIntent =新意圖(Intent.ACTION_VIEW);

smsIntent.setType(「vnd.android-dir/mms-sms」);

smsIntent.putExtra(「address」,「12125551212」);

smsIntent.putExtra(「sms_body」,「Body of Message」);

startActivity(smsIntent);

相關問題