1. 程式人生 > >ShareSDK之QQ的分享與登入

ShareSDK之QQ的分享與登入

之前寫了友盟的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) { } }); } }

就是這麼簡單,就是複製程式碼的過程