Android呼叫系統分享的坑與救贖

dsxdsxdsx0發表於2017-12-19

因為最近剛剛進入新公司,還在熟悉業務中,所以帶我的師傅讓我關注關注Android的非SDK式的分享,也就是所謂的呼叫系統分享,不需要去申請appkey什麼,簡單方便,因此也跟我提了一個需求,就是直接調起具體的分享頁,比如說如果分享到新浪微博,則不需要再點選微博進入,而是直接進入微博的具體分享頁。為什麼需要呼叫系統的分享,因為單純的sdk分享並不支援多圖模式的分享。

首先,我們得了解常用的分享平臺,微信、微信朋友圈、新浪微博、QQ和QQ空間,這五個是最基本也是最常用的分享平臺,我們也在這五個上面進行分享的操作。

另外,我們也給自己提一個需求,簡單點就是在某個資料夾下面遍歷裡面的圖片,然後將這些圖片分享到各大平臺。所以我們先找到一個存放圖片的路徑,MainActivity中的onCreate()方法中定義

Android呼叫系統分享的坑與救贖
1.找到存放圖片的路徑

找到路徑之後,我們需要對這個目錄進行遍歷操作


Android呼叫系統分享的坑與救贖
2.遍歷檔案下的jpg圖片

新建一個ShareUtils的工具類,裡面封裝了分享的方法

廢話少說,先看程式碼

微信分享

Android呼叫系統分享的坑與救贖
3.微信朋友圈的分享

關注ComponentName這裡面的兩個引數,第一個引數是微信的包名,另一個是跳轉到具體分享頁的類路徑。

接下來是QQ的分享

Android呼叫系統分享的坑與救贖
4.QQ的分享

QQ Zone的分享

Android呼叫系統分享的坑與救贖
5.QQ zone的分享

新浪微博的分享

Android呼叫系統分享的坑與救贖
6.新浪微博的分享

這些程式碼都是大同小異,只要關注包名和類名就行,新浪微博比較特殊,之前也是設定類名和包名的,但是發現沒有用,後來直接通過設定包名,發現成功了,估計新浪為了安全考慮,就隱藏了跳轉具體類的用法

Tips:當你找不到這些具體類的時候,可以下一個淘寶聯盟,然後通過Android studio抓取系統日誌,下面附上具體跳轉的類名和各應用的包名,另外網上很多東西都過時了,不如自己抓取看看來的放心,可以少走很多彎路。

新浪微博包名:com.sina.weibo

微信:com.tencent.mm  跳轉類:com.tencent.mm.ui.tools.ShareImgUI

QQ:com.tencent.mobileqq  ; 跳轉類:com.tencent.mobileqq.activity.JumpActivity

QQ Zone :com.qzone ; 跳轉類: com.qzonex.module.operation.ui.QZonePublishMoodActivity

相關文章