9、另一種發(fā)送短信的方式:使用Intent上篇 我們使用SmsManager類實(shí)現(xiàn)了發(fā)送SMS的功能,且并沒(méi)有用到內(nèi)置的客戶端。實(shí)際上,我們很少這樣做,自己在應(yīng)用程序中去完全實(shí)現(xiàn)一個(gè)完整的SMS客戶端。相反我們會(huì)去利用它,將需要發(fā)送的內(nèi)容和目的手機(jī)號(hào)傳遞給內(nèi)置的SMS客戶端,然后發(fā)送。 下面我就向大家介紹如何利用Intent實(shí)現(xiàn)利用將我們的東西傳遞給內(nèi)置SMS客戶端發(fā)送我們SMS。為了實(shí)現(xiàn)這個(gè)功能,就要用到 startActivity("指定一個(gè)Intent") 方法,且指定Intent的動(dòng)作為 Intent.ACTION_SENDTO ,用 sms: 指定目標(biāo)手機(jī)號(hào),用 sms_body 指定信息內(nèi)容。java源文件如下所示:
? 注意代碼中的紅色粗體部分,就是實(shí)現(xiàn)這個(gè)功能的核心代碼!布局文件maim.xml和值文件string.xml跟上篇中的一樣,這里不再累述。運(yùn)行結(jié)果如下圖: 圖2、程序主界面 點(diǎn)擊send按鈕之后,轉(zhuǎn)到內(nèi)置的SMS客戶端并且將我們輸入的值傳入了,如下圖: 圖3、內(nèi)容傳至內(nèi)置SMS客戶端 發(fā)送之后,5556號(hào)android模擬器會(huì)收到我們發(fā)送的消息,如下圖: 圖5、發(fā)送之后5556號(hào)android模擬器收到消息 10、增強(qiáng)SMS為MMS我們講了這么多,都還只是實(shí)現(xiàn)了簡(jiǎn)單的發(fā)生SMS的功能,如果我們想發(fā)送圖片、音頻怎么辦(⊙o⊙)?不急,現(xiàn)在我們就將第9節(jié)介紹的SMS發(fā)送程序改造為MMS。 我們可以附加一個(gè)文件到我們的消息做為附件發(fā)送,用 Intent.EXTRA_STREAM 和附件資源的Uri做為參數(shù)調(diào)用 putExtra() 方法,附加到信息。并設(shè)置Intent的類型為 mime-type 。 要注意的是:內(nèi)置的MMS并不包括一個(gè) ACTION_SENDTO 動(dòng)作的Intent接收器,我們需要使用的動(dòng)作類型是 ACTION_SEND ,并且目標(biāo)手機(jī)號(hào)不在是使用 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節(jié)中的紅色粗體代碼,就完成而來(lái)一個(gè)MMS的構(gòu)建。 |
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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