亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統 2152 0

9、另一種發送短信的方式:使用Intent

上篇 我們使用SmsManager類實現了發送SMS的功能,且并沒有用到內置的客戶端。實際上,我們很少這樣做,自己在應用程序中去完全實現一個完整的SMS客戶端。相反我們會去利用它,將需要發送的內容和目的手機號傳遞給內置的SMS客戶端,然后發送。

下面我就向大家介紹如何利用Intent實現利用將我們的東西傳遞給內置SMS客戶端發送我們SMS。為了實現這個功能,就要用到 startActivity("指定一個Intent") 方法,且指定Intent的動作為 Intent.ACTION_SENDTO ,用 sms: 指定目標手機號,用 sms_body 指定信息內容。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;
}
                
              

?

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

image

圖2、程序主界面

點擊send按鈕之后,轉到內置的SMS客戶端并且將我們輸入的值傳入了,如下圖:

image

圖3、內容傳至內置SMS客戶端

發送之后,5556號android模擬器會收到我們發送的消息,如下圖:

image

圖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的構建。

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成熟女人50岁一级毛片不卡 | 粗大猛烈进出呻吟声的视频 | 日本高清不卡免费 | 麻豆国产精品高中生视频 | 男人的天堂久久香蕉国产 | 中文字幕久久久久一区 | aaaa级片 | 久久精品麻豆 | 99视频精品全部免费观看 | 美女在线国产 | 五月婷婷国产 | 国产99精品免费视频看6 | 伊人色婷婷 | 久久不卡一区 | 亚洲日本va中文字幕区 | 毛茸茸bbw亚洲人 | 精品精品久久宅男的天堂 | 欧美亚洲国产激情一区二区 | 国产精品午夜在线观看 | 亚洲高清国产一区二区三区 | 国产精品视频福利一区二区 | 日韩精品a | 色偷偷91久久综合噜噜噜噜 | 91亚洲区国产区精品区 | 激情综合视频 | 国产在线观看精品 | 91视频网址入口 | 国产精品免费aⅴ片在线观看 | 成人合集大片bd高清在线观看 | 中文字幕亚韩 | 五月天亚洲婷婷 | 亚洲国产精品人久久 | 久久婷婷丁香七月色综合 | 久久99热这里只有精品 | 日韩精品一区二区三区毛片 | 欧美午夜在线 | 久久99久久99精品免观看动漫 | 久久性网 | 91精品久久久久久久久网影视 | 亚洲综合一二三 | 国产欧美日韩免费一区二区 |