用sharesdk第三方等陆或分享到QQ空间,qq好友,微信,朋友圈,新浪微博,腾讯微博等
?? 公司最近不景氣,辭職后的日子剛開始還挺嗨皮,過兩天閑的蛋都碎了,都四月份了,還是領(lǐng)到畢業(yè)證在找吧。。。。。。
????不扯淡了,項(xiàng)目中經(jīng)常有第三方等陸或者分享的功能,以下是我用sharesdk實(shí)現(xiàn)的步驟。。
?
?1?使用第三方前,導(dǎo)入MainLibs/libs中相應(yīng)的包,res中的drawble中的圖片必須導(dǎo)入到工程中,values中的String.xml中的條目選擇自己用到的復(fù)制到工程中
2?把assest文件下的ShareSdk.conf拷到assest文件下,里面放置都是各個(gè)平臺(tái)申請(qǐng)的appid
3?在清單中注冊(cè)時(shí)加上demo中的權(quán)限,以及復(fù)制下面的代碼到工程中
<activity???????????android:name="cn.sharesdk.framework.ShareSDKUIShell"
????????????android:configChanges="keyboardHidden|orientation"
????????????android:screenOrientation="portrait"
????????????android:theme="@android:style/Theme.Translucent.NoTitleBar"
????????????android:windowSoftInputMode="stateHidden|adjustResize"?>
????????</activity>
4?各個(gè)平臺(tái)的第三方登錄及分享代碼,在Shareandthirdlogin工程中的點(diǎn)擊事件下均可找到(注意:在oncreate()方法中一定要初始化Sharesdk,添加代碼:SharesdkInit(this))
5?此時(shí)如果有正確的key,就可以登陸和分享了(應(yīng)到各開發(fā)者平臺(tái)申請(qǐng)自己應(yīng)用的key)
?
代碼貢獻(xiàn)出來了。。
?
import java.util.HashMap;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.sina.weibo.SinaWeibo;
import cn.sharesdk.tencent.qq.QQ;
import cn.sharesdk.tencent.qzone.QZone;
import cn.sharesdk.tencent.weibo.TencentWeibo;
import cn.sharesdk.wechat.friends.Wechat;
import cn.sharesdk.wechat.moments.WechatMoments;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
/**
?* 使用sharesdk實(shí)現(xiàn)第三方登陸及分享
?* @author duronggang
?* @date 2014-1-23 下午1:55:35
?*/
public class MainActivity extends Activity {
?private Button qqLoginBt;??????????????? //qq登陸
?private Button sinaLoginBt;????????????? //新浪微博登陸
?private Button tencentLoginBt;?????????? //騰訊微博登陸
?private Button qqandqqZoneShareBt;?????? //QQ好友,空間分享
?private Button sinaWbShareBt;??????????? //新浪微博分享
?private Button tencentWbShareBt;???????? //騰訊微博分享
?private Button wxShareBt;??????????????? //微信分享
?private Button wxfriendsShareBt;???????? //朋友圈分享
?private Button attentionBt;?? //特別說明
?@Override
?protected void onCreate(Bundle savedInstanceState) {
??super.onCreate(savedInstanceState);
??setContentView(R.layout.activity_main);
??ShareSDK.initSDK(this);??????? //初始化一定要有,否則會(huì)報(bào)空指針異常
??init();
??listener();
?}
?
?private void listener() {
??// TODO Auto-generated method stub
??qqLoginBt.setOnClickListener(l);
??sinaLoginBt.setOnClickListener(l);
??tencentLoginBt.setOnClickListener(l);
??qqandqqZoneShareBt.setOnClickListener(l);
??sinaWbShareBt.setOnClickListener(l);
??tencentWbShareBt.setOnClickListener(l);
??wxShareBt.setOnClickListener(l);
??wxfriendsShareBt.setOnClickListener(l);
??attentionBt.setOnClickListener(l);
??
?}
?public void init()
?{
??qqLoginBt = (Button) findViewById(R.id.bt_qqlogin);
??sinaLoginBt = (Button) findViewById(R.id.bt_sinalogin);
??tencentLoginBt = (Button) findViewById(R.id.bt_tencentlogin);
??qqandqqZoneShareBt = (Button) findViewById(R.id.bt_qqandqzoneshare);
??sinaWbShareBt = (Button) findViewById(R.id.bt_sinashare);
??tencentWbShareBt = (Button) findViewById(R.id.bt_tencetwbshare);
??wxShareBt = (Button) findViewById(R.id.bt_wxshare);
??wxfriendsShareBt = (Button) findViewById(R.id.bt_wxfriendshare);
??attentionBt = (Button) findViewById(R.id.bt_attention);
?}
?
?OnClickListener l = new OnClickListener() {
??
??@Override
??public void onClick(View v) {
???// TODO Auto-generated method stub
??switch(v.getId()){
??case R.id.bt_qqlogin:
???Platform platQQ = ShareSDK.getPlatform(MainActivity.this, QZone.NAME);
???platQQ.setPlatformActionListener(qqlistener);
???platQQ.showUser(null);??? //代表獲取自己的授權(quán)信息
???platQQ.removeAccount();
???break;
??case R.id.bt_sinalogin:
???Platform platsina = ShareSDK.getPlatform(MainActivity.this, SinaWeibo.NAME);
???platsina.setPlatformActionListener(sinalistener);
???platsina.showUser(null);?? //代表獲取自己的授權(quán)信息
???platsina.removeAccount();
???break;
??case R.id.bt_tencentlogin:
???Platform platten = ShareSDK.getPlatform(MainActivity.this, TencentWeibo.NAME);
???platten.setPlatformActionListener(sinalistener);
???platten.showUser(null);???? //代表獲取自己的授權(quán)信息
???platten.removeAccount();
???break;
??case R.id.bt_qqandqzoneshare:
???QQ.ShareParams qqsp = new QQ.ShareParams();
???qqsp.title = "title";
???qqsp.text = "share";
???qqsp.titleUrl = "http://www.baidu.com";
???// qqsp.shareType = Platform.SHARE_TEXT;
???//qqsp.imagePath = "";
???// sp.imagePath = “/mnt/sdcard/測(cè)試分享的圖片.jpg”;
???Platform qqs = ShareSDK.getPlatform(MainActivity.this, QQ.NAME);
???qqs.setPlatformActionListener(sinalistener); // 設(shè)置分享事件回調(diào)
???// 執(zhí)行圖文分享
???qqs.share(qqsp);
???break;
??case R.id.bt_sinashare:
???Platform.ShareParams sp = new SinaWeibo.ShareParams();
???sp.text = "分享";
???//sp.imagePath ="";
???Platform weibo = ShareSDK.getPlatform(MainActivity.this, SinaWeibo.NAME);
???weibo.setPlatformActionListener(sinalistener); // 設(shè)置分享事件回調(diào)
??? // 執(zhí)行圖文分享
???weibo.share(sp);
???break;
??case R.id.bt_tencetwbshare:
???Platform.ShareParams ssp = new TencentWeibo.ShareParams();
???ssp.text = "分享";
???//ssp.imagePath = "";
???Platform tewb = ShareSDK.getPlatform(MainActivity.this, TencentWeibo.NAME);
???tewb.setPlatformActionListener(sinalistener);
???tewb.share(ssp);
???tewb.removeAccount();
???break;
??case R.id.bt_wxshare:
???Wechat.ShareParams wxsp = new Wechat.ShareParams();
???//sp.title = "";?????????????????????? //分享的標(biāo)題
???wxsp.text = "分享";?????????????????????? //分享的內(nèi)容
???wxsp.shareType = Platform.SHARE_TEXT;??? //分享的類別
???//sp.imagePath = “/mnt/sdcard/測(cè)試分享的圖片.jpg”;? //要分享的圖片路徑
???Platform wechat = ShareSDK.getPlatform(MainActivity.this, Wechat.NAME);
???wechat.setPlatformActionListener(sinalistener); // 設(shè)置分享事件回調(diào)
???// 執(zhí)行圖文分享
???wechat.share(wxsp);
???break;
??case R.id.bt_wxfriendshare:
???WechatMoments.ShareParams ps = new WechatMoments.ShareParams();
???ps.title = "title";
???ps.text = "分享";
???ps.shareType = Platform.SHARE_TEXT;
???ps.imagePath = "";
???// sp.imagePath = “/mnt/sdcard/測(cè)試分享的圖片.jpg”;
???Platform wechats = ShareSDK.getPlatform(MainActivity.this, WechatMoments.NAME);
???System.out.println(wechats + "wwwwwwww");
???wechats.setPlatformActionListener(sinalistener); // 設(shè)置分享事件回調(diào)
???// wechat.removeAccount();? //用于清除登陸賬戶
???// 執(zhí)行圖文分享
???wechats.share(ps);
???break;
??case R.id.bt_attention:
???AlertDialog.Builder zidingyi = new AlertDialog.Builder(MainActivity.this);
????? zidingyi.setTitle("說明");
???View vv = LayoutInflater.from(MainActivity.this).inflate(R.layout.seekbar, null);
???zidingyi.setView(vv);
???zidingyi.setNegativeButton("取消", new DialogInterface.OnClickListener() {
????
????@Override
????public void onClick(DialogInterface arg0, int arg1) {
?????// TODO Auto-generated method stub
????}
???});
???zidingyi.show();
???break;
??}
??}
?};
?
?PlatformActionListener sinalistener = new PlatformActionListener() {
??@Override
??public void onError(Platform arg0, int arg1, Throwable arg2) {
???// TODO Auto-generated method stub
???System.out.println("授權(quán)失敗..........");
???Message msg = new Message();
???msg.obj = arg2;
???sharehand.sendMessage(msg);
???System.out.println(arg2);
??}
??@Override
??public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
???// TODO Auto-generated method stub
???System.out.println("onComplete........");
???
???/*使用騰訊微博登陸后獲取的用戶id和昵稱
???String tid = arg2.get("openid").toString();
???String nickName = arg2.get("name").toString();*/
???/*使用新浪微博登陸后獲取的用戶id和昵稱
???String sid = arg2.get("id").toString();
???String nickName = arg2.get("name").toString();*/???
???Message msg = new Message();
???msg.obj = "yes";
???sharehand.sendMessage(msg);
??}
??@Override
??public void onCancel(Platform arg0, int arg1) {
???// TODO Auto-generated method stub
??}
?};
?Handler sharehand = new Handler() {
??public void handleMessage(android.os.Message msg) {
???String isShare = msg.obj.toString();
???if ("yes".equals(isShare)) {
????Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();
???} else
????Toast.makeText(MainActivity.this, "授權(quán)失敗", Toast.LENGTH_LONG).show();
??};
?};
?
?/*
? * QQ登陸后的監(jiān)聽
? */
?PlatformActionListener qqlistener = new PlatformActionListener() {
??@Override
??public void onError(Platform arg0, int arg1, Throwable arg2) {
???// TODO Auto-generated method stub
???System.out.println("onError..........");
??}
??@Override
??public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
???// TODO Auto-generated method stub
???System.out.println("onComplete........");
???String qs = arg0.getDb().getUserId();
???Message msg = new Message();
???msg.obj = qs;
???msg.what = 0;
???thirdhand.sendMessage(msg);
??}
??@Override
??public void onCancel(Platform arg0, int arg1) {
???// TODO Auto-generated method stub
??}
?};
?Handler thirdhand = new Handler() {
??public void handleMessage(Message msg) {
???String ss = msg.obj.toString();
???if (msg.what == 1) {
????Toast.makeText(MainActivity.this, "登陸成功", Toast.LENGTH_LONG);
???} else if (msg.what == 0) {
????Toast.makeText(MainActivity.this, "QQ登陸成功", Toast.LENGTH_LONG);
???}
??};
?};
?
?
?
?@Override
?public boolean onCreateOptionsMenu(Menu menu) {
??// Inflate the menu; this adds items to the action bar if it is present.
??getMenuInflater().inflate(R.menu.main, menu);
??return true;
?}
}
?
?
?
總結(jié)
以上是生活随笔為你收集整理的用sharesdk第三方等陆或分享到QQ空间,qq好友,微信,朋友圈,新浪微博,腾讯微博等的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派与Arduino串口通讯获取DH1
- 下一篇: BERT-MRC:统一化MRC框架提升N