9、另一種發送短信的方式:使用Intent上篇 我們使用SmsManager類實現了發送SMS的功能,且并沒有用到內置的客戶端。實際上,我們很少這樣做,自己在應用程序中去完全實現一個完整的SMS客戶端。相反我們會去利用它,將需要發送的內容和目的手機號傳遞給內置的SMS客戶端,然后發送。 下面我就向大家介紹如何利用Intent實現利用將我們的東西傳遞給內置SMS客戶端發送我們SMS。為了實現這個功能,就要用到 startActivity("指定一個Intent") 方法,且指定Intent的動作為 Intent.ACTION_SENDTO ,用 sms: 指定目標手機號,用 sms_body 指定信息內容。java源文件如下所示:
? 注意代碼中的紅色粗體部分,就是實現這個功能的核心代碼!布局文件maim.xml和值文件string.xml跟上篇中的一樣,這里不再累述。運行結果如下圖: 圖2、程序主界面 點擊send按鈕之后,轉到內置的SMS客戶端并且將我們輸入的值傳入了,如下圖: 圖3、內容傳至內置SMS客戶端 發送之后,5556號android模擬器會收到我們發送的消息,如下圖: 圖5、發送之后5556號android模擬器收到消息 10、增強SMS為MMS我們講了這么多,都還只是實現了簡單的發生SMS的功能,如果我們想發送圖片、音頻怎么辦(⊙o⊙)?不急,現在我們就將第9節介紹的SMS發送程序改造為MMS。 我們可以附加一個文件到我們的消息做為附件發送,用 Intent.EXTRA_STREAM 和附件資源的Uri做為參數調用 putExtra() 方法,附加到信息。并設置Intent的類型為 mime-type 。 要注意的是:內置的MMS并不包括一個 ACTION_SENDTO 動作的Intent接收器,我們需要使用的動作類型是 ACTION_SEND ,并且目標手機號不在是使用 sms: 而是 address 。 主要代碼如下: // Get the URI of a piece of media to attach. Uri attached_Uri = Uri.parse(" content://media/external/images/media/1 "); // Create a new MMS intent Intent mmsIntent = new Intent(Intent.ACTION_SEND, attached_Uri); mmsIntent.putExtra(" sms_body ", edtContent.getText().toString()); mmsIntent.putExtra(" address ", edtPhoneNo.getText().toString()); mmsIntent.putExtra(Intent.EXTRA_STREAM, attached_Uri); mmsIntent.setType(" image/png "); startActivity(mmsIntent); ? 將這段代碼替換第9節中的紅色粗體代碼,就完成而來一個MMS的構建。 |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
