友盟分享—QQ、QQ空间、新浪微博、微信

本文详细介绍了如何在移动应用中实现社交分享功能,包括在友盟官网注册、配置权限、引入SDK、设置分享内容及执行分享操作等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请按着步骤一步一步来、最后自然会做出来;当然你也可以看友盟的demo只要你不嫌麻烦。

第一步:在友盟官网[友盟官网](http://www.umeng.com/)注册账号,创建一个移动应用,获取APPkey,下载SDK。

第二步:把demo里面的res下的每个文件夹的资源文件全部拷到自己的项目下面,虽然你的代码没有用到这些东西,但是SDK里面的文件用到了,必须要拷。

第三步:在自己创建的项目中如下配置清单文件和权限
<application
        android:debuggable="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
    android:theme="@android:style/Theme.Black.NoTitleBar" >
 <!-- ########注册SDK使用的Activity######### -->
        <!--分享编辑页-->
        <activity         android:name="com.umeng.socialize.view.ShareActivity"
            android:configChanges="orientation|keyboard"
            android:launchMode="singleTask"
            android:noHistory="true"
            android:theme="@style/Theme.UMDialog"        android:windowSoftInputMode="stateVisible|adjustResize" >
        </activity>
        <!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ -->
        <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:launchMode="singleTask"
            android:noHistory="true" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
         <!-- 100424468修改成你在QQ开放平台申请的 APP ID-->
                <data android:scheme="tencent100424468" /> 
            </intent-filter>
        </activity>
        <activity android:name="com.tencent.connect.common.AssistActivity"           android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:screenOrientation="portrait">
        </activity>
    <!-- #######添加UmengAppkey######## -->
        <meta-data
            android:name="UMENG_APPKEY"
            android:value="xxxxxxxxxxxxxxxxxxxxxx" >
        </meta-data>
    </application>

注意看以上的配置文件,其中把自己的友盟的key、QQ的APPID替换进去。

第四步:设置用户权限

 <!-- ###################声明SDK使用的相关权限###################### -->
    <!-- 检测网络状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
    <!-- 获取mac地址作为用户的备用唯一标识 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />     
    <!-- 获取用户手机的IMEI,用来唯一的标识用户 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />      
    <!-- 缓存资源优先存入SDcard -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 允许应用程序联网,以便向我们的服务器端发送数据 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- QQ、QQ空间所需权限 -->
<uses-permission android:name="android.permission.GET_TASKS" />

以上这些是用到的用户权限、拷过去即可

第五步:把需要的jar包拷到项目的libs目录下面
SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar,SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar,SocialSDK_Sina.jar,umeng_social_sdk.jar,鼠标右键–>Add to Build Path。

第六步:在自己的项目的onCreate方法里面获取如下变量

UMSocialService mController_share = UMServiceFactory
                .getUMSocialService("com.umeng.share");

这个变量用来分享用的

第七步:设置分享内容(图文分享、音乐分享与视屏分享)
1、图文分享

mController_share.setShareContent("内容");
mController_share.setShareMedia(new UMImage(getActivity(),                                      "图片的url链接"));
2、音乐分享
UMusic uMusic = new UMusic("音乐的url链接.mp3结尾");
uMusic.setAuthor("作者");//作者无法显示(原因未知)
uMusic.setTitle("标题");//设置标题
// 设置音乐缩略图
uMusic.setThumb("图片的url链接");
mController_share.setShareMedia(uMusic);
3、视屏分享
// 设置分享视频
UMVideo umVideo = new UMVideo("视屏的url链接");
// 设置视频缩略图
umVideo.setThumb("图片链接");
umVideo.setTitle("标题");
mController_share.setShareMedia(umVideo);

第八步:前面已经设置了分享内容,现在就只差分享方法了

mController_share.doOauthVerify(activity, SHARE_MEDIA.QQ,
                new UMAuthListener() {
                    @Override
                    public void onStart(SHARE_MEDIA platform) {
                        Toast.makeText(activity, "授权开始", Toast.LENGTH_SHORT)
                                .show();
                    }

                    @Override
                    public void onError(SocializeException e,
                            SHARE_MEDIA platform) {
                        Toast.makeText(activity, "授权错误", Toast.LENGTH_SHORT)
                                .show();
                    }

                    @Override
                    public void onComplete(Bundle value, SHARE_MEDIA platform) {
                        Toast.makeText(activity, "授权完成", Toast.LENGTH_SHORT)
                                .show();
                    }

                    @Override
                    public void onCancel(SHARE_MEDIA platform) {
                        Toast.makeText(activity, "授权取消", Toast.LENGTH_SHORT)
                                .show();
                    }
                });

        // 参数1为Context类型对象, 参数2为要分享到的目标平台, 参数3为分享操作的回调接口
        mController_share.postShare(activity, SHARE_MEDIA.QQ,
                new SnsPostListener() {
                    @Override
                    public void onStart() {
                        Toast.makeText(activity, "开始分享.", Toast.LENGTH_SHORT)
                                .show();
                    }

                    @Override
                    public void onComplete(SHARE_MEDIA platform, int eCode,
                            SocializeEntity entity) {
                        if (eCode == 200) {
                            Toast.makeText(activity, "分享成功.",
                                    Toast.LENGTH_SHORT).show();
                        } else {
                            String eMsg = "";
                            if (eCode == -101) {
                                eMsg = "没有授权";
                            }
                            Toast.makeText(activity,
                                    "分享失败[" + eCode + "] " + eMsg,
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    }

仔细看你就会发现,这段代码虽然很长,但是很简单就只有两个方法,一个用来授权,一个用来分享。代码拷过去就可以了,不用改动。要改的只有一个地方,分享到不同的平台的时候改成对应的平台就可以了。
QQ平台 SHARE_MEDIA.QQ
QQ空间平台 SHARE_MEDIA.QZONE
新浪微博 SHARE_MEDIA.SINA
微信朋友圈 SHARE_MEDIA.WEIXIN_CIRCLE

经过以上八步,分享基本上就已经完成了。还有一点需要注意的就是把注册的ID跟key或者Secret绑定到友盟的后台。进入自己创建的友盟移动应用--组件--社会化分享--设置。即可绑定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海晨忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值