Android調(diào)用系統(tǒng)自帶的分享功能實(shí)例代碼
實(shí)現(xiàn)分享功能的幾個辦法
1.調(diào)用系統(tǒng)的分享功能
2.通過第三方SDK,如ShareSDK,友盟等
3.自行使用各自平臺的SDK,比如QQ,微信,微博各自的SDK
這里就記錄下第一種辦法。
分享文本信息
Intent textIntent = new Intent(Intent.ACTION_SEND);
textIntent.setType("text/plain");
textIntent.putExtra(Intent.EXTRA_TEXT, "這是一段分享的文字");
startActivity(Intent.createChooser(textIntent, "分享"));
效果如下圖:

分享單張圖片
String path = getResourcesUri(R.drawable.shu_1);
Intent imageIntent = new Intent(Intent.ACTION_SEND);
imageIntent.setType("image/jpeg");
imageIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path));
startActivity(Intent.createChooser(imageIntent, "分享"));
分享多個文件
ArrayList<Uri> imageUris = new ArrayList<>();
Uri uri1 = Uri.parse(getResourcesUri(R.drawable.dog));
Uri uri2 = Uri.parse(getResourcesUri(R.drawable.shu_1));
imageUris.add(uri1);
imageUris.add(uri2);
Intent mulIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
mulIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
mulIntent.setType("image/jpeg");
startActivity(Intent.createChooser(mulIntent,"多文件分享"));
上面幾個例子的效果都是一樣的,創(chuàng)建一個選擇器,讓用戶自己選擇分享到哪里。
這里有一點(diǎn)得注意,就是通過這種方法進(jìn)行分享,Intent傳遞的數(shù)據(jù)的Type(就是setType()方法)一定要控制好,不然會出錯。(至于為什么后面說)。
其中由于是分享的res中的圖片,故轉(zhuǎn)變?yōu)閡ri,方法在這:
private String getResourcesUri(@DrawableRes int id) {
Resources resources = getResources();
String uriPath = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
resources.getResourcePackageName(id) + "/" +
resources.getResourceTypeName(id) + "/" +
resources.getResourceEntryName(id);
Toast.makeText(this, "Uri:" + uriPath, Toast.LENGTH_SHORT).show();
return uriPath;
}
指定分享到微信
Intent wechatIntent = new Intent(Intent.ACTION_SEND);
wechatIntent.setPackage("com.tencent.mm");
wechatIntent.setType("text/plain");
wechatIntent.putExtra(Intent.EXTRA_TEXT, "分享到微信的內(nèi)容");
startActivity(wechatIntent);
效果如下:

指定分享到QQ
Intent qqIntent = new Intent(Intent.ACTION_SEND);
qqIntent.setPackage("com.tencent.mobileqq");
qqIntent.setType("text/plain");
qqIntent.putExtra(Intent.EXTRA_TEXT, "分享到微信的內(nèi)容");
startActivity(qqIntent);
效果如下:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android中手機(jī)震動的設(shè)置(Vibrator)的步驟簡要說明
Android中手機(jī)震動的設(shè)置(Vibrator)的步驟,很詳細(xì),感興趣的朋友可以了解下哦2013-01-01
Flutter音樂播放插件audioplayers使用步驟詳解
audioplayers是一個可以支持同時(shí)播放多個音頻文件的Flutter的插件,可以播放多個同時(shí)的音頻文件,這篇文章主要介紹了audioplayers的使用步驟,感興趣想要詳細(xì)了解可以參考下文2023-05-05
Kotlin中實(shí)現(xiàn)多線程數(shù)據(jù)刷新的完整方案
這篇文章主要介紹了Kotlin中實(shí)現(xiàn)多線程數(shù)據(jù)刷新的完整方案,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-04
Android中Notification用法實(shí)例總結(jié)
這篇文章主要介紹了Android中Notification用法,以實(shí)例形式較為詳細(xì)的分析并總結(jié)了Notification的功能與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
解決Android studio3.6安裝后gradle Download失敗(構(gòu)建不成功)
這篇文章主要介紹了解決Android studio3.6安裝后gradle Download失敗(構(gòu)建不成功),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

