欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

【Android Developers Training】 32. 向其它應(yīng)

系統(tǒng) 1907 0

注:本文翻譯自Google官方的Android Developers Training文檔,譯者技術(shù)一般,由于喜愛(ài)安卓而產(chǎn)生了翻譯的念頭,純屬個(gè)人興趣愛(ài)好。

原文鏈接: http://developer.android.com/training/sharing/send.html


當(dāng)你構(gòu)造了一個(gè)intent,你需要制定你的intent將會(huì)“ 激活 ”的行為。Andriud定義了一些行為,就像你所料想的一樣,這里面就有 ACTION_SEND 這個(gè)行為,它表明了這個(gè)intent是將一個(gè)數(shù)據(jù)從一個(gè)Activity發(fā)送至另一個(gè)Activity,甚至這一操作可能會(huì)跨進(jìn)程執(zhí)行。為了將數(shù)據(jù)發(fā)送中另一個(gè)activity,所有你需要做的就是指定這個(gè)數(shù)據(jù)以及它的類型,系統(tǒng)會(huì)尋找出于其要求相符合的所有activity,并將它們展現(xiàn)給用戶(如果有多個(gè)選擇);或者直接啟動(dòng)這個(gè)activity(只有一個(gè)符合的activity)。類似的,你可以將你的activity所能支持的來(lái)自其它應(yīng)用的數(shù)據(jù)類型在你的清單文件中聲明出來(lái)。

在應(yīng)用之間通過(guò)intent發(fā)送和接收數(shù)據(jù)在社交分享內(nèi)容一塊最為常用。Intent允許同于使用他們最喜愛(ài)的應(yīng)用快速和簡(jiǎn)單的分享信息。

Note:

使用 ShareActionProvider 將一個(gè)分享行為添加到一個(gè) ActionBar 是最好的方法,這在API Level 14及以上的平臺(tái)上可以使用。 ShareActionProvider 將會(huì)在課程: Adding an Easy Share Action 中做進(jìn)一步討論。

?

一). 發(fā)送文字內(nèi)容

最直接和通用的使用 ACTION_SEND 行為的場(chǎng)景是將文本內(nèi)容從一個(gè)activity發(fā)送至另一個(gè)activity。例如,內(nèi)置的瀏覽器應(yīng)用可以將當(dāng)前頁(yè)面的URL以文本形式分享給任何一個(gè)應(yīng)用。這對(duì)于將一個(gè)文章或者網(wǎng)站通過(guò)Email或者社交網(wǎng)站分享給朋友是很有用的。下面就是實(shí)現(xiàn)這樣的分享的代碼:

      Intent sendIntent = 
      
        new
      
      
         Intent();

sendIntent.setAction(Intent.ACTION_SEND);

sendIntent.putExtra(Intent.EXTRA_TEXT, 
      
      "This is my text to send."
      
        );

sendIntent.setType(
      
      "text/plain"
      
        );

startActivity(sendIntent);
      
    

如果有一個(gè)安裝的應(yīng)用,它的intent過(guò)濾器能夠匹配 ACTION_SEND 和" text/plain "的MIME類型,Android就會(huì)執(zhí)行這個(gè)應(yīng)用;如果不止一個(gè)應(yīng)用能夠符合要求,系統(tǒng)會(huì)展示一個(gè)單選對(duì)話框(即一個(gè)應(yīng)用選擇器),來(lái)讓用戶選擇一個(gè)應(yīng)用。如果你為這個(gè)Intent調(diào)用 Intent.createChooser() ,Android將會(huì) 永遠(yuǎn) 顯示這個(gè)選擇對(duì)話框,這有一些優(yōu)勢(shì):

  • 哪怕用戶之前已經(jīng)選擇了一個(gè)默認(rèn)應(yīng)用,選擇器仍然會(huì)顯示出來(lái)。
  • 如果沒(méi)有匹配的應(yīng)用,Android會(huì)顯示一個(gè)系統(tǒng)消息。
  • 你可以自定義對(duì)話框的標(biāo)題。

下面是更新優(yōu)化后的代碼:

      Intent sendIntent = 
      
        new
      
      
         Intent();

sendIntent.setAction(Intent.ACTION_SEND);

sendIntent.putExtra(Intent.EXTRA_TEXT, 
      
      "This is my text to send."
      
        );

sendIntent.setType(
      
      "text/plain"
      
        );

startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));
      
    

運(yùn)行結(jié)果如圖1所示。

圖1. 手持設(shè)備上選擇器對(duì)話框的截圖

另外,你可以為Intent設(shè)置一下附加選項(xiàng)(extras): EXTRA_EMAIL EXTRA_CC EXTRA_BCC , EXTRA_SUBJECT 等。不過(guò),如果接收intent的應(yīng)用沒(méi)有設(shè)計(jì)成會(huì)使用它們,那么什么事情都不會(huì)發(fā)生。你也可以使用自定義的附加選項(xiàng),當(dāng)然只有接收intent的應(yīng)用笨笨狗狗理解它們才會(huì)有效果。一般而言,你會(huì)使用被接收intent應(yīng)用自己定義的附加選項(xiàng)。

Note:

一些Email應(yīng)用,比如 Gmail ,會(huì)期望一個(gè) String[] 的附加選項(xiàng),比如: EXTRA_EMAIL EXTRA_CC 。你可以使用 putExtra(String, String[]) 來(lái)將它們添加至你的intent。

?

二). 發(fā)送二進(jìn)制內(nèi)容

二進(jìn)制數(shù)據(jù)的分享是將 ACTION_SEND 的行為,恰當(dāng)?shù)腗IME類型,數(shù)據(jù)的URI放置在名為 EXTRA_STREAM 的附加選項(xiàng)中,這三者結(jié)合在一起。下面的例子經(jīng)常被用來(lái)分享一個(gè)圖片,但也能用來(lái)分享二進(jìn)制類型的數(shù)據(jù)內(nèi)容:

      Intent shareIntent = 
      
        new
      
      
         Intent();

shareIntent.setAction(Intent.ACTION_SEND);

shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);

shareIntent.setType(
      
      "image/jpeg"
      
        );

startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));
      
    

務(wù)必記住下面的幾點(diǎn)提示:

  • 你可以使用“ */* ”做為MIME類型,這將只會(huì)匹配到可以處理通用數(shù)據(jù)流的activity。
  • 接受的應(yīng)用需要響應(yīng)的權(quán)限來(lái)訪問(wèn) Uri 指向的數(shù)據(jù)。推薦的操作方式是這樣的:
    • 在你的 ContentProvider 中保存數(shù)據(jù),要確保其他應(yīng)用有正確的權(quán)限訪問(wèn)你的Provider。比較推薦的訪問(wèn)機(jī)制是使用 per-URI permissions ,它是臨時(shí)的,并只將訪問(wèn)權(quán)限授權(quán)給接收intent的應(yīng)用。一個(gè)簡(jiǎn)單的方法是使用 FileProvider 輔助類來(lái)創(chuàng)建一個(gè)這樣的 ContentProvider 。
    • 使用系統(tǒng)的 MediaStore 。 MediaStore 主要針對(duì)的是視頻,音頻和圖像的MIME類型,然而從Android 3.0(API Level 11)開(kāi)始,它也能存儲(chǔ)非多媒體的數(shù)據(jù)類型(查看: MediaStore.Files 了解更多)。當(dāng)一個(gè)“ content:// ”類型的用來(lái)分享的 Uri 被傳遞到 onScanCompleted() 回調(diào)函數(shù)之后,可以通過(guò)使用 scanFile() 將文件插入到 MediaStore 中。注意:一旦內(nèi)容被添加到系統(tǒng)的 MediaStore ,它將會(huì)被設(shè)備上任何應(yīng)用所訪問(wèn)。

?

三). 發(fā)送多組內(nèi)容

要分享多組內(nèi)容,使用 ACTION_SEND_MULTIPLE 行為,和一個(gè)指向內(nèi)容的URI的List。MIME的類型根據(jù)你要分享的內(nèi)容而變化。例如,如果你要分享三張JPEG圖片,那么類型仍然是“ image/jpeg ”。如果是各種圖片格式的混合,那么類型就應(yīng)該是“ image/* ”,它會(huì)尋找能夠處理任意 格式 圖片的Activity。僅在你在分享很多種類型的內(nèi)容時(shí),才應(yīng)該使用“ */* ”。如之前所述,解析和處理數(shù)據(jù)的行為就要看接收intent的應(yīng)用了。下面是一個(gè)發(fā)送多組內(nèi)容數(shù)據(jù)的例子:

      ArrayList<Uri> imageUris = 
      
        new
      
       ArrayList<Uri>
      
        ();

imageUris.add(imageUri1); 
      
      
        //
      
      
         Add your image URIs here
      
      
        imageUris.add(imageUri2);



Intent shareIntent 
      
      = 
      
        new
      
      
         Intent();

shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);

shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);

shareIntent.setType(
      
      "image/*"
      
        );

startActivity(Intent.createChooser(shareIntent, 
      
      "Share images to.."));
    

如之前所述,確保提供的 URIs 所指向的數(shù)據(jù)是接收intent應(yīng)用能夠有權(quán)限訪問(wèn)的數(shù)據(jù)。

【Android Developers Training】 32. 向其它應(yīng)用發(fā)送簡(jiǎn)單數(shù)據(jù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(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ì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 男女性高爱潮免费网站 | 久久偷拍人| av网站在线看 | 亚洲国产日本 | 亚洲性生活免费视频 | 日本天堂网址 | 天堂网果冻传媒 | 亚洲欧洲中文日韩久久AV乱码 | 激情 一区 | 日韩精品成人 | 日韩一级a毛片欧美一级 | 国产福利不卡一区二区三区 | 91在线免费观看 | 欧美日韩一区二区三 | 成人免费高清 | 亚洲黄色一级大片 | 国产精品国产三级国产专区5o | 黄色网址在线免费播放 | 国产99精品在线观看 | 日韩美女中文字幕 | chengrenzaixian| 91精品国产色综合久久 | 热re66久久精品国产99re | 香蕉视频在线观看免费国产婷婷 | 伊人久久艹 | 人妻体内射精一区二区三四 | 欧美freexx| 一区二区av| 国产不卡免费视频 | 国产a区 | 亚洲欧美中文在线观看4 | 国产精品一区久久久久 | 成人国产精品齐天大性 | 亚洲经典在线中文字幕 | 亚洲天天综合网 | 日本高清中文字幕一区二区三区 | 亚洲国产成人在线视频 | 国产日韩欧美一区 | 美女扣下面流白浆丝袜 | 亚洲精品在线视频观看 | 欧美国产一区二区 |