開發(fā)者注冊、應用創(chuàng)建
- 登錄騰訊開放平臺注冊開發(fā)者賬號并登錄;
- 登陸后,點擊右上角用戶頭像展開菜單,選擇管理中心;
管理中心.png - 進入管理中心后,在安卓應用界面點擊創(chuàng)建應用按鈕,填寫對應的應用信息提交審核后完成應用的創(chuàng)建。
注:在新建應用時,記錄APP ID與APP KEY,在以后的開發(fā)過程中會用到。同時,在管理中心界面可以查看到對應應用的詳細信息。
2.開發(fā)環(huán)境配置
-
SDK下載
登錄資料庫進行SDK的下載。 -
資源引用
新建工程包名必須與平臺創(chuàng)建應用包名一致,將open_sdk_xxx.jar手動導入到項目libs目錄下,添加jar包后,右鍵選擇Add As Library添加該jar包到項目的Library,如下圖所示:
導入資源jar包.png
添加到Library.png -
AndroidManifest.xml配置
- 在manifest標簽內添加如下權限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- 在application標簽內添加如下內容:
<!-- ############ QQ空間和QQ SSO授權的Activity注冊 ############ -->
<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent你的AppId" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
注意:一定記得在
<data android:scheme="tencent你的AppId" />添加上應用的AppId(如:對應應用的AppId為123456,則應填寫tencent123456)。
3.內容分享
3.1 新建Tencent實例
private Tencent mTencent;// 新建Tencent實例用于調用分享方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTencent = Tencent.createInstance("your APP ID",getApplicationContext());
}
注:在新建Tencent實例時,一定要注意填寫應用的APPID,如:APPID為
123456,使用Tencent.createInstance("123456",getApplicationContext());即可創(chuàng)建Tencent實例。
-
分享回調接口的實現(xiàn)
自定義分享回調接口:
class MyIUiListener implements IUiListener {
@Override
public void onComplete(Object o) {
// 操作成功
}
@Override
public void onError(UiError uiError) {
// 分享異常
}
@Override
public void onCancel() {
// 取消分享
}
}
重寫Activity或者Fragment的onActivityResult方法,否則不能正常的監(jiān)聽分享狀態(tài),具體代碼如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
Tencent.onActivityResultData(requestCode, resultCode, data, mIUiListener);
if (requestCode == Constants.REQUEST_API) {
if (resultCode == Constants.REQUEST_QQ_SHARE || resultCode == Constants.REQUEST_QZONE_SHARE || resultCode == Constants.REQUEST_OLD_SHARE) {
Tencent.handleResultData(data, mIUiListener);
}
}
}
3.2 分享消息到QQ
- 默認分享-圖文并存
private Bundle params;
private void shareToQQ() {
params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE,QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
params.putString(QQShare.SHARE_TO_QQ_TITLE, "標題");// 標題
params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");// 摘要
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,"http://www.qq.com/news/1.html");// 內容地址
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,"http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif");// 網(wǎng)絡圖片地址 params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "應用名稱");// 應用名稱
params.putString(QQShare.SHARE_TO_QQ_EXT_INT, "其它附加功能");
// 分享操作要在主線程中完成
ThreadManager.getMainHandler().post(new Runnable() {
@Override
public void run() {
mTencent.shareToQQ(mActivity, params, mIUiListener);
}
});
}
- 分享純圖片到QQ
/**
* 分享純圖片到QQ
*
* @param imgUrl 圖片url
*/
private void shareImgToQQ(String imgUrl) {
params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_IMAGE);// 設置分享類型為純圖片分享
params.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, imgUrl);// 需要分享的本地圖片URL
// 分享操作要在主線程中完成
ThreadManager.getMainHandler().post(new Runnable() {
@Override
public void run() {
mTencent.shareToQQ(mActivity, params, mIUiListener);
}
});
}
注:默認為圖片分享,需要進行音樂、應用、純圖片分享的,請參照SDK內的說明文檔進行代碼的編寫,注:有些參數(shù)在文檔上顯示的比較坑(你懂得),一定要仔細辨認!一定要仔細辨認!一定要仔細辨認!
具體詳情請參閱接口調用說明1.11 分享消息到 QQ(無需 QQ 登錄)(2)分享純圖片
3.3 分享到QQ空間
- 默認分享-圖文并存
private Bundle params;
private void shareToQZone() {
params = new Bundle();
params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE,QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
params.putString(QzoneShare.SHARE_TO_QQ_TITLE, "標題");// 標題
params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");// 摘要
params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL,"http://www.qq.com/news/1.html");// 內容地址
ArrayList<String> imgUrlList = new ArrayList<>();
imgUrlList.add("http://f.hiphotos.baidu.com/image/h%3D200/sign=6f05c5f929738bd4db21b531918a876c/6a600c338744ebf8affdde1bdef9d72a6059a702.jpg");
params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL,imgUrlList);// 圖片地址
// 分享操作要在主線程中完成
ThreadManager.getMainHandler().post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
mTencent.shareToQzone(mActivity, params,mIUiListener);
}
});
}
- 上傳圖片到QQ空間
/**
* 發(fā)表到QQ空間
*
* @param imgUrlList 圖片地址集合--上傳的只能是本地圖片!
*/
private void publishToQzone(ArrayList<String> imgUrlList) {
// 分享類型
params = new Bundle();
params.putInt(QzonePublish.PUBLISH_TO_QZONE_KEY_TYPE, QzonePublish.PUBLISH_TO_QZONE_TYPE_PUBLISHMOOD);
params.putString(QzonePublish.PUBLISH_TO_QZONE_SUMMARY, "說說正文");
params.putStringArrayList(QzonePublish.PUBLISH_TO_QZONE_IMAGE_URL,
imgUrlList);// 圖片地址ArrayList
// 分享操作要在主線程中完成
ThreadManager.getMainHandler().post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
mTencent.publishToQzone(mActivity, params, mIUiListener);
}
});
}
注:除了默認的分享圖文外,還支持發(fā)表說說、視頻或上傳照片這三種模式,同上,需要參閱SDK開發(fā)指南文檔,同理,請注意規(guī)避文檔上的坑。
上傳圖片到QQ空間時,圖片只能是本地照片!
具體詳情請參閱接口調用說明1.12 分享到 QQ 空間(無需 QQ 登錄)(2)發(fā)表說說、視頻或上傳圖片,看參數(shù)意義就行了,文檔代碼。。。就是坑。。
4.注意事項
- APP ID
一定要替換成自己申請的appid——運行前檢查AndroidManifest.xml中與Activity中
Tencent.createInstance內使用的appid是否正常。
注意在AndroidMaifest.xml中,需要填寫tencent您的appid,appid前多了個tencent!
- 應用權限的添加
- Q空間和QQ SSO授權的Activity注冊
友情提示
在參閱分享sdk內接口調用說明書時:
一!定!要!仔!細!看!參!數(shù)!說!明!
千!萬!不!要!拷!貝!官!方!代!碼!使!用!
最新更新時間 2017/08/01


