友盟分享的集成

今天没事,写一下Android集成友盟的分享吧

集成友盟其实官网文档很详细了,一步一步的很容易集成:

一、进入友盟官网(没有账号的进行注册),注册完后点击U-Share,然后点创建新应用,会生成AppKey,然后点击去集成,可以下载sdk(umeng_android_social_sdk_6.4.4_custom)到本地;

二、把压缩包解压,找到一个名为:“友盟集成工具”的 .jar 文件,点击如下图:


上图我选择了QQ、微信和新浪的完整版,大家可以根据自己的需求进行集成

点击ok就会生成一个文件夹:umeng_integratetool_result  点开后结构如下:


把这四个文件夹里面的内容都拷贝到自己Android Studio的相对应的位置,注意libs文件夹下一定要建立依赖

三、都拷贝完成后,我们开始在studio清单文件里面进行相关友盟和分享到各个平台的配置:

1.友盟需要的相关权限:

<!-- 友盟所需权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
2.配置要分享到的平台,以QQ、微信和新浪为例:

//新浪
<activity
    android:name=".WBShareActivity"
    android:configChanges="keyboardHidden|orientation"
    android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
<activity
    android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
    android:configChanges="keyboardHidden|orientation"
    android:exported="false"
    android:windowSoftInputMode="adjustResize" />
//微信
<activity
    android:name=".wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
//qq
<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" />

        <data android:scheme="tencent******" />
    </intent-filter>
</activity>
<activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
//友盟的appkey
<meta-data
    android:name="UMENG_APPKEY"
    android:value="******" />
注意1:QQ需要填写腾讯开放平台的AppId
<data android:scheme="tencent******" />

tencent后面跟的******是自己的AppId

注意2:友盟的value的值填写友盟的自己应用的AppKey

android:value="******" 
value的值就是AppKey

这样清单文件基本都配置完了

四、初始化分享到的各个平台,创建一个类如MyApplication 继承Application,在MyApplication中:

//对分享的各个平台的key进行配置
        PlatformConfig.setWeixin("***", "******");
        PlatformConfig.setQQZone("***", "******");
       PlatformConfig.setSinaWeibo("***", "******", "http://open.weibo.com/apps/***/privilege/oauth");
各个平台的分享到各个社交平台的appKey获取方法:

http://bbs.mob.com/thread-275-1-1.html

在各个平台创建应用,拿到 Id和Key即可

注意:新浪微博需要填写分享回调页面:

http://open.weibo.com/apps/***/privilege/oauth

填写上面的回调网址即可,要把里面的一串数字修改为自己应用的appId

五、在代码中的使用:

在需要分享的类里面调用:

//分享的方法
public void share() {

    //分享的图片
    UMImage thumb =  new UMImage(this, R.drawable.thumbnail);
    //分享链接
    UMWeb web = new UMWeb("***");
    web.setTitle("***");//标题
    web.setThumb(thumb);  //缩略图
    web.setDescription("***");//描述

    new ShareAction(MainActivity.this).withText("")
            .setDisplayList(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA)
            .withMedia(web)
            .setCallback(new UMShareListener()
            {
                @Override
                public void onStart(SHARE_MEDIA share_media) {

                }

                @Override
                public void onResult(SHARE_MEDIA share_media) {
                    MyToast.showToast(MainActivity.this,"分享成功!").show();
                }

                @Override
                public void onError(SHARE_MEDIA share_media, Throwable throwable) {
                    MyToast.showToast(MainActivity.this,"分享失败!").show();
                }

                @Override
                public void onCancel(SHARE_MEDIA share_media) {
                    MyToast.showToast(MainActivity.this,"分享取消!").show();
                }
            }).open();
}
然后不要忘记重写分享成功后的回调

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
这样友盟的分享功能就实现了

点击分享的话会弹出分享面板如下:


猜你喜欢

转载自blog.csdn.net/qiy6010/article/details/78063014