QQ ,微博,一键分享的步骤,详细到没朋友

以微博和QQ为例
QQ:

在此之前需要先注册开发者信息。并生成appId

 打开腾讯开发平台(http://open.qq.com);

点击移动应用;




进入应用管理






点击管理应用,找到自己之前创建的Demo




进入Demo 看到Demo 的信息记录下来
创建的时间;
appId:
appkey:




再  创建并登陆http://www.mob.com   进入后台



点击ShareSDK   ShareSDK For Android下载并创建 好应用   
选择 上方的添加,进入看到App key






下载ShareSdk
选择需要的项目(最好全选)
解压得到三个包





选择 ShareSDK for Android 找到 QuickIntegrater  这个包




打开控制台  输入java -jar 空格    QuickIntegrater  这个包的路径


得到弹窗





输入项目的名称  和包名  最好从清单文件中获取
 勾选继承快捷分享,方便做一键分享的操作,点击确定,在ShareSDK for Android 包中会生成一个Simple 文件,里面有四个文件



然后将assets 整个文件一起复制到 main 包下和java 同级
将src 目录下的 cn  和com  两个包拷贝到java的目录下


将libs 文件拷贝到libs 中并add  as Library

将res muluxia 的六个文件都拷贝到res 目录下,做好了这些工作开始在代码中进行调试

进入ShareSDK.xml 文件当中
找到


<ShareSDK     AppKey = "********8***"/> 
选择
<QQ
        Id="7"
        SortId="7"
        AppId="输入自己之前创建项目的appid"
        AppKey="输入自己之前创建项目的appid"
        ShareByAppClient="true"
        Enable="true" />
在代码中创建一个方法  :

 private void loginByShareQQ() {
        //用ShareSDK登录或者分享之前,必须初始化
        ShareSDK.initSDK(this);
        /* 创建一个QQ平台对象*/
        Platform qq = ShareSDK.getPlatform(QQ.NAME);


        //如果已经通过验证了,那么可以直接获取QQ的相关信息
        if(qq.isValid()){
            PlatformDb db=qq.getDb();

            String userId=db.getUserId();
            String userName=db.getUserName();
            String  userIcon=db.getUserIcon();
            String userGender = db.getUserGender();

            LogUtil.w("tag","UserId="+userId+" userName="+userName+" userIcon="+userIcon +"   userGender="+userGender);
            return;

        }

   /*true 通过web认证, false 通过客户端认证*/
        qq.SSOSetting(false);
        qq.setPlatformActionListener(new PlatformActionListener() {
            @Override
            public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
                LogUtil.d("tag", "登录成功。。。");

            }

            @Override
            public void onError(Platform platform, int i, Throwable throwable) {
                LogUtil.w("tag", "登录失败");
            }

            @Override
            public void onCancel(Platform platform, int i) {
                LogUtil.w("tag", "取消登录");
            }
        });
        //两种认证方式
        //需要导入用户的,有自己的用户数据库
        qq.showUser(null);
        //不需要导入用户的,只需要一个登录过程
        //qq.authorize();
    }
在清单文件中添加权限:

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <!-- 蓝牙分享所需的权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
在Application 中添加:

<activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <activity
            android:name="com.mob.tools.MobUIShell"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize" >
            <intent-filter>
                <data android:scheme="tencentAppid"/>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <!-- 调用新浪原生SDK,需要注册的回调activity -->
            <intent-filter>
                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

新浪微博:
进入新浪微博开发者平台http://open.weibo.com/?sudaref=www.2doit.net:

点击移动应用    立即接入 ——>选择创建应用——> 完善应用的名称
已经创建好的,在我的应用中点击应用的名称,点击左边的应用信息 



点击编辑,通过    下载使用平台提供的签名工具获取签名下载工具就好了,输入包名,会生成签名
下面的* Android下载地址什么的,只是做测试的话随意,http://www.baidu.com,这也可以,

下面有你的App key 和 APp Secret




选择保存

在高级信息里面选择
OAuth2.0 授权设置


在测试信息里面,添加自己的微博名称



好了这样就差不多了

在代码中添加这样的方法:

  private  void  loginByShareSDK(Platform platform){
        //如果已经通过验证了,那么可以直接获取platform的相关信息
        if(platform.isValid()){
            PlatformDb db=platform.getDb();
            String userId=db.getUserId();
            String userName=db.getUserName();
            String  userIcon=db.getUserIcon();
            String userGender = db.getUserGender();

            LogUtil.w("tag","UserId="+userId+" userName="+userName+" userIcon="+userIcon +"   userGender="+userGender);
            return;

        }

   /*true 通过web认证, false 通过客户端认证*/
        platform.SSOSetting(false);
        platform.setPlatformActionListener(new PlatformActionListener() {
            @Override
            public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
                LogUtil.d("tag", "登录成功。。。");

            }

            @Override
            public void onError(Platform platform, int i, Throwable throwable) {
                LogUtil.w("tag", "登录失败");
            }

            @Override
            public void onCancel(Platform platform, int i) {
                LogUtil.w("tag", "取消登录");
            }
        });
        //两种认证方式
        //需要导入用户的,有自己的用户数据库
        platform.showUser(null);
        //不需要导入用户的,只需要一个登录过程
        //platform.authorize();
    }
我们在这个方法中添加一个监听事件:

private View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int id = v.getId();
            //用ShareSDK登录或者分享之前,必须初始化
            ShareSDK.initSDK(LoginActivity.this);
            Platform platform=null;
            switch (id) {
                case R.id.login_qq_iv:
                    loginByShareQQ();
                    // loginByQQ();
                    platform=ShareSDK.getPlatform(QQ.NAME);
                    break;
                case R.id.login_wb_iv:
                   platform=ShareSDK.getPlatform(SinaWeibo.NAME);
                    break;
            }
            //通过ShareSDk登录
            loginByShareSDK(platform);
        }
    };

这样就能选择自己的登陆方式了

下面来说一下关于一键分享的事:
很简单的一段代码:


private void showShare() {
        ShareSDK.initSDK(this);
        OnekeyShare oks = new OnekeyShare();
        //关闭sso授权
        oks.disableSSOWhenAuthorize();
        // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
         oks.setTitle(getString(R.string.share));
     
        // titleUrl是标题的网络链接,仅在人人网和QQ空间使用
        oks.setTitleUrl("http://url");

        // text是分享文本,所有平台都需要这个字段
        oks.setText("第一次分享做测试分享");
        // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
        //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片

        // url仅在微信(包括好友和朋友圈)中使用
        //oks.setUrl("http://url");
        // comment是我对这条分享的评论,仅在人人网和QQ空间使用
        oks.setComment("我是测试评论文本");
        // site是分享此内容的网站名称,仅在QQ空间使用
        oks.setSite(getString(R.string.app_name));
        // siteUrl是分享此内容的网站地址,仅在QQ空间使用
        oks.setSiteUrl("http://sharesdk.cn");

// 启动分享GUI
        oks.show(this);
    }


最后直接在点击事件中调用这个方法就好了。好了,就这些了、。。谢谢








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值