android分享純圖片到QQ空間實(shí)現(xiàn)方式
最新開發(fā)新項(xiàng)目的時(shí)候,要做分享項(xiàng)目,要求分享有微信,微信朋友圈,QQ,QQ空間,新浪微博這五個(gè),所分享內(nèi)容包括,分享純圖片,純文字,圖文類型等,要求分享出去的內(nèi)容不能帶有當(dāng)前app的logo,而無論使用微信分享sdk,還是qq分享sdk,圖文類型的分享都會(huì)帶有當(dāng)前app的logo和名稱,所以筆者最終只能使用android原生實(shí)現(xiàn)分享功能了。
一.分享微信,分享微信單獨(dú)分享一張圖片時(shí),可以使用原生分享,也可以使用微信分享sdk,sdk實(shí)現(xiàn)方式,筆者不再多述,網(wǎng)上太多,可以看官方說明:
(2) 微信好友分享原生實(shí)現(xiàn):
public static void sharedToWx(Context context,Uri uri,String filePath) {
if(sendMsg == null) return;
Intent intent = new Intent(Intent.ACTION_SEND);
if (!(context instanceof Activity)) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//intent.setType("text/plain"); //文本分享
intent.setType("image/*");
if(uri != null){
intent.putExtra(Intent.EXTRA_STREAM, uri);
}else{
intent.putExtra(Intent.EXTRA_STREAM, filePath);
}
intent.setPackage("com.tencent.mm");
intent.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");//微信
context.startActivity(intent);
}
(3)微信朋友圈原生分享
public static void sharedToWx(Context context,Uri uri,String filePath) {
if(sendMsg == null) return;
Intent intent = new Intent(Intent.ACTION_SEND);
if (!(context instanceof Activity)) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//intent.setType("text/plain"); //文本分享
intent.setType("image/*");
if(uri != null){
intent.putExtra(Intent.EXTRA_STREAM, uri);
}else{
intent.putExtra(Intent.EXTRA_STREAM, filePath);
}
intent.setPackage("com.tencent.mm");
intent.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");//微信朋友圈
context.startActivity(intent);
}
注意:微信sdk分享圖文分享方式,圖片+文本大小不能超過32KB,超過32KB就不能分享。
二.分享qq與qq空間
注意:qq分享支持原生分享也支持sdk分享,qq空間由于qq空間頁面activity不對(duì)外開放,所以qq空間分享只支持sdk分享,不支持原生qq空間分享,而且qq空間分享早期支 持純圖片分享,但是google從android4.0開始,關(guān)閉對(duì)apn權(quán)限的自動(dòng)獲取,如果再使用qq分享sdk往qq空間分享純圖片就會(huì)拋出no permission to write apn setting或者分享 失敗。
(1)qq分享sdk官司方文檔: http://wiki.open.qq.com/wiki/%E5%88%86%E4%BA%AB%E6%B6%88%E6%81%AF%E5%88%B0QQ%EF%BC%88%E5%AE%9A%E5%90%91%E5%88%86%E4%BA%AB%EF%BC%89
(2)QQ分享原生實(shí)現(xiàn)
public static void sharedToWx(Context context,Uri uri,String filePath) {
if(sendMsg == null) return;
Intent intent = new Intent(Intent.ACTION_SEND);
if (!(context instanceof Activity)) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//intent.setType("text/plain"); //文本分享
intent.setType("image/*");
if(uri != null){
intent.putExtra(Intent.EXTRA_STREAM, uri);
}else{
intent.putExtra(Intent.EXTRA_STREAM, filePath);
}
intent.setPackage("com.tencent.mobileqq");
intent.setClassName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.JumpActivity");//QQ
context.startActivity(intent);
}
(3)利用qq分享sdk直接向qq空間分享純圖片
備注重點(diǎn):要向qq空間分享純圖片,分享sdk其實(shí)是不支持純圖片分享的,但是可以使用向qq分享純圖片,設(shè)置自動(dòng)打開qq空間,這樣會(huì)彈出框分享純圖片,很大幾 率會(huì)分享成功,圖片不易過大,過大分享成功的可能性就降低了。
public static void shareToQQZoneImg(String localImgUrl){
if(TextUtils.isEmpty(localImgUrl) || shareBean == null) return;
Tencent tencent = Tencent.createInstance("QQ_APP_ID", ApplicatonContext); //要向騰訊平臺(tái)申請(qǐng)appid
Bundle bundle = new Bundle();
bundle.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_IMAGE); //注意,要向qq空間分享純圖片,只能傳這三個(gè)參數(shù),不能傳其他的
bundle.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL,localImgUrl); //localImgUrl必須是本地手機(jī)圖片地址
bundle.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN);
tencent.shareToQQ(Activity, bundle, ShareListener);
}
綜上:如果有同學(xué)對(duì)分享純圖片到qq空間有好的方法,感謝分享出來哈,筆者也是被坑了N次后,才找到這么個(gè)有一定失敗率的分享方式。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Android開發(fā)實(shí)現(xiàn)圓形圖片功能示例
- Android Studio設(shè)置或修改Android SDK路徑方法
- Android Intent傳遞數(shù)據(jù)大小限制詳解
- Android Studio Gradle依賴沖突解決方法
- Android開發(fā)之a(chǎn)ndroid_gps定位服務(wù)簡(jiǎn)單實(shí)現(xiàn)
- Android開發(fā)經(jīng)驗(yàn)談:并發(fā)編程(線程與線程池)(推薦)
- Android中Retrofit的簡(jiǎn)要介紹
- Android權(quán)限如何禁止以及友好提示用戶開通必要權(quán)限詳解
- 史上最全Android build.gradle配置詳解(小結(jié))
- Android中再按一次退出提醒實(shí)現(xiàn)的兩種方法
相關(guān)文章
Flutter實(shí)現(xiàn)底部導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了Flutter實(shí)現(xiàn)底部導(dǎo)航欄的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
Android Compose實(shí)現(xiàn)聯(lián)系人列表流程
聲明式UI,更簡(jiǎn)單的自定義,實(shí)時(shí)帶交互的預(yù)覽功能Compose并不是類似于Recyclerview的高級(jí)控件,而是直接拋棄了View,ViewGroup那套東西,從上到下魯了一套全新的框架,直白點(diǎn)說就是它的渲染機(jī)制,布局機(jī)制,觸摸算法,以及UI具體寫法全都是新的2023-03-03
Android手勢(shì)密碼view學(xué)習(xí)筆記(二)
這篇文章主要為大家詳細(xì)介紹了Android手勢(shì)密碼view的第二篇學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Android 分析實(shí)現(xiàn)性能優(yōu)化之啟動(dòng)速度優(yōu)化
在移動(dòng)端程序中,用戶希望的是應(yīng)用能夠快速打開。啟動(dòng)時(shí)間過長(zhǎng)的應(yīng)用不能滿足這個(gè)期望,并且可能會(huì)令用戶失望。輕則鄙視你,重則直接卸載你的應(yīng)用2021-11-11
探討:如何修改Android超時(shí)休眠時(shí)間
本篇文章是對(duì)如何修改Android超時(shí)休眠時(shí)間的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Android開發(fā)中比較耗時(shí)的一些操作小結(jié)
這篇文章主要介紹了Android開發(fā)中比較耗時(shí)的一些操作小結(jié),本文根據(jù)實(shí)際開發(fā)經(jīng)驗(yàn)總結(jié)了6條比較耗時(shí)的編程操作,請(qǐng)大家注意下,需要的朋友可以參考下2015-06-06
深入理解Android熱修復(fù)技術(shù)原理之資源熱修復(fù)技術(shù)
Android資源的熱修復(fù),就是在app不重新安裝的情況下,利用下發(fā)的補(bǔ)丁包 直接更新本app中的資源2021-06-06
RecyclerView+CardView實(shí)現(xiàn)橫向卡片式滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了RecyclerView+CardView實(shí)現(xiàn)橫向卡片式滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01

