2010-07-27 16 views
9

我有一個應用程序發送消息到指定的聯繫人。現在我用發送短信時ACTION_SENDTO和ACTION_VIEW有什麼區別?

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("smsto:" + phoneNumber)); 

發送消息,它在模擬器和我的N1上效果很好。用戶使用HTC的投訴令人難以置信,他們在使用android.mms應用程序時得到了強制關閉。我做了更多的挖掘,我發現有很多發送消息的方法。例如

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + phoneNumber)); 

而且還

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.putExtra("address", phoneNumber); 
intent.setType("vnd.android-dir/mms-sms"); 

他們似乎都工作在模擬器和我的設備上完全一樣,我無法找到正確的,普遍支持的方式什麼官員。有任何想法嗎?

+1

你發送一條消息,而不是查看它;就那麼簡單! :) – 2010-07-27 11:42:30

+0

我會期望至少與正在顯示的號碼的線程。不是從消息應用程序關閉的力量。 – shoren 2010-07-28 06:46:04

回答

-1

我會試着看看他們是如何在Contacts apps上做到的。

在過去,我有很多與HTC Hero的兼容性問題。我總是用Sense UI編寫在手機上運行的代碼。我發現如果代碼在那裏工作,它會在每個Android設備上工作:)。

3

意圖描述你的意圖。您想做什麼?查看關於Intent的文檔http://developer.android.com/reference/android/content/Intent.html

在你的情況下,你想發送一些東西,所以ACTION_SENDTO聽起來比ACTION_VIEW(用於查看現有記錄)更合適。

不幸的是,目前還沒有正式的註冊表來提供什麼意圖 - OpenIntents的無畏傢伙在http://www.openintents.org/en/intentstable創建了一個維基風格的註冊表,但它是衆包並且非常不完整。最後,它是關於支持意圖的應用程序如何處理它。

就你而言,標準的Android消息傳遞應用恰好處理ACTION_VIEW,但HTC的自定義應用卻沒有。我最好的建議是使用ACTION_SENDTO,並處理異常並顯示錯誤消息。請記住,用戶可能安裝了第三方SMS應用程序。