日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

短信的收發(fā)及在android模擬器之間實(shí)踐(4)

系統(tǒng) 2124 0

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源文件如下所示:

                
                
                  
                    package
                  
                   skynet.com.cnblogs.www;


                  
                    import
                  
                   android.app.Activity;

                  
                    import
                  
                   android.content.Intent;

                  
                    import
                  
                   android.net.Uri;

                  
                    import
                  
                   android.os.Bundle;

                  
                    import
                  
                   android.view.View;

                  
                    import
                  
                   android.widget.Button;

                  
                    import
                  
                   android.widget.EditText;

                  
                    import
                  
                   android.widget.Toast;



                  
                    public
                  
                  
                    class
                  
                   TextMessage 
                  
                    extends
                  
                   Activity {
 
                  
                    /** Called when the activity is first created. */
                  
                  
 @Override
 
                  
                    public
                  
                  
                    void
                  
                   onCreate(Bundle savedInstanceState) {
  
                  
                    super
                  
                  .onCreate(savedInstanceState);

  setContentView(R.layout.main);
  btnSend = (Button) findViewById(R.id.btnSend);
  edtPhoneNo = (EditText) findViewById(R.id.edtPhoneNo);
  edtContent = (EditText) findViewById(R.id.edtContent);

  btnSend.setOnClickListener(
                  
                    new
                  
                   View.OnClickListener() {
   
                  
                    public
                  
                  
                    void
                  
                   onClick(View v) {
    String phoneNo = edtPhoneNo.getText().toString();
    String message = edtContent.getText().toString();
    
                  
                    if
                  
                   (phoneNo.length() > 0 && message.length() > 0) {
      
                  
                    
                      Intent smsIntent=
                      
                        new
                      
                       Intent(Intent.ACTION_SENDTO, Uri.parse("
                      
                        sms:
                      
                      "+edtPhoneNo.getText().toString())); smsIntent.putExtra("
                      
                        sms_body
                      
                      ", edtContent.getText().toString()); TextMessage.
                      
                        this
                      
                      .startActivity(smsIntent);
                    
                  
                  
    } 
                  
                    else
                  
                  
     Toast.makeText(getBaseContext(),
       "
                  
                    Please enter both phone number and message.
                  
                  ",
       Toast.LENGTH_SHORT).show();
   }
  });
 }

 
                  
                    private
                  
                   Button btnSend;
 
                  
                    private
                  
                   EditText edtPhoneNo;
 
                  
                    private
                  
                   EditText edtContent;
}
                
              

?

注意代碼中的紅色粗體部分,就是實(shí)現(xiàn)這個(gè)功能的核心代碼!布局文件maim.xml和值文件string.xml跟上篇中的一樣,這里不再累述。運(yùn)行結(jié)果如下圖:

image

圖2、程序主界面

點(diǎn)擊send按鈕之后,轉(zhuǎn)到內(nèi)置的SMS客戶端并且將我們輸入的值傳入了,如下圖:

image

圖3、內(nèi)容傳至內(nèi)置SMS客戶端

發(fā)送之后,5556號(hào)android模擬器會(huì)收到我們發(fā)送的消息,如下圖:

image

圖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)建。

短信的收發(fā)及在android模擬器之間實(shí)踐(4)


更多文章、技術(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ì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 平邑县| 龙州县| 十堰市| 灌阳县| 海丰县| 靖西县| 温宿县| 晋江市| 宕昌县| 仪陇县| 满洲里市| 克什克腾旗| 进贤县| 龙游县| 晴隆县| 固镇县| 平乐县| 陈巴尔虎旗| 雷山县| 婺源县| 英山县| 精河县| 镇赉县| 长兴县| 阳朔县| 云浮市| 聊城市| 桃源县| 虞城县| 九龙县| 阳朔县| 五常市| 海城市| 抚远县| 肃北| 绥江县| 偏关县| 玛沁县| 新化县| 临猗县| 亳州市|