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é)
以上就是這篇文章的全部內(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ù)簡單實(shí)現(xiàn)
- Android開發(fā)經(jīng)驗(yàn)談:并發(fā)編程(線程與線程池)(推薦)
- Android中Retrofit的簡要介紹
- Android權(quán)限如何禁止以及友好提示用戶開通必要權(quán)限詳解
- 史上最全Android build.gradle配置詳解(小結(jié))
- Android中再按一次退出提醒實(shí)現(xiàn)的兩種方法
相關(guān)文章
android Matrix實(shí)現(xiàn)圖片隨意放大縮小或拖動(dòng)
這篇文章主要為大家詳細(xì)介紹了android Matrix實(shí)現(xiàn)圖片隨意放大縮小或拖動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android自定義滾動(dòng)選擇器實(shí)例代碼
本篇文章主要介紹了Android自定義滾動(dòng)選擇器實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01Android 程序申請(qǐng)權(quán)限注意事項(xiàng)
本主要介紹Android 程序申請(qǐng)權(quán)限注意事項(xiàng),這里整理了相關(guān)資料,并詳細(xì)說明如何避免開發(fā)的程序支持設(shè)備減少,有需要的小伙伴可以參考下2016-09-09Android中進(jìn)程生命周期的優(yōu)先級(jí)
這篇文章主要介紹了Android中進(jìn)程生命周期的優(yōu)先級(jí)的相關(guān)資料,需要的朋友可以參考下2016-01-01Flutter進(jìn)階之實(shí)現(xiàn)動(dòng)畫效果(九)
這篇文章主要為大家詳細(xì)介紹了Flutter進(jìn)階之實(shí)現(xiàn)動(dòng)畫效果的第九篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08為Android系統(tǒng)添加config.xml 新配置的設(shè)置
這篇文章主要介紹了為Android系統(tǒng)添加config.xml 新配置的設(shè)置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03