ShareSDK之QQ的分享與登入
阿新 • • 發佈:2019-02-06
之前寫了友盟的QQ第三方登入與分享寫的有些不明,現在又研究了ShareSDK的第三方,所以就寫一下[ShareSDK的地址](http://www.mob.com/#/)
首先先下載SDK,之後閱讀SDK文件,剩下的就是登入時的程式碼問題下面是我的程式碼
佈局檔案
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height ="match_parent"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}" >
<Button
android:onClick="qzone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/_qzone" />
<Button
android:onClick="qq"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/_qq" />
</LinearLayout>
主頁面
package com.example.qq;
import java.util.HashMap;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import cn.sharesdk.tencent.qq.QQ;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ShareSDK.initSDK(this);
}
public void qzone(View v) {
OnekeyShare oks = new OnekeyShare();
// 關閉sso授權
oks.disableSSOWhenAuthorize();
// 分享時Notification的圖示和文字 2.5.9以後的版本不呼叫此方法
// oks.setNotification(R.drawable.ic_launcher,
// getString(R.string.app_name));
// title標題,印象筆記、郵箱、資訊、微信、人人網和QQ空間使用
oks.setTitle("liuxiyuan521部落格");
// titleUrl是標題的網路連結,僅在人人網和QQ空間使用
oks.setTitleUrl("http://blog.csdn.net/liuxiyuan521?viewmode=list");
// text是分享文字,所有平臺都需要這個欄位
oks.setText("在漫漫程式猿的道路上,你我共同渡過");
// imagePath是圖片的本地路徑,Linked-In以外的平臺都支援此引數
// oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片
// url僅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://blog.csdn.net/liuxiyuan521?viewmode=list");
// comment是我對這條分享的評論,僅在人人網和QQ空間使用
oks.setComment("我是測試評論文字");
// site是分享此內容的網站名稱,僅在QQ空間使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此內容的網站地址,僅在QQ空間使用
oks.setSiteUrl("http://blog.csdn.net/liuxiyuan521?viewmode=list");
// 啟動分享GUI
oks.show(this);
}
public void qq(View v) {
login();
}
/**
* 第三方登入
*/
private void login() {
Platform qq = ShareSDK.getPlatform(MainActivity.this, QQ.NAME);
qq.authorize();
qq.setPlatformActionListener(new PlatformActionListener() {
@Override
public void onError(Platform qq, int arg1, Throwable arg2) {
//彈出失敗視窗
System.out.println("第三方登入失敗");
}
@Override
public void onComplete(Platform qq, int arg1, HashMap<String, Object> arg2) {
//跳轉
Intent intent = new Intent(MainActivity.this, SuccessActivity.class);
startActivity(intent);
}
@Override
public void onCancel(Platform arg0, int arg1) {
}
});
}
}
就是這麼簡單,就是複製程式碼的過程