友盟极速自动集成第三方分享[微博,微信,企鹅]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_38376757/article/details/89324493

声明

本文只记录了分享集成
|
参考文章 https://blog.csdn.net/apro_wang/article/details/79923526

效果图

最终效果

账号准备

友盟 https://passport.umeng.com/

微博 https://open.weibo.com/

微信 https://open.weixin.qq.com/

企鹅 https://connect.qq.com/

集成

依赖

//友盟统计
compile 'com.umeng.sdk:common:1.5.1'
compile 'com.umeng.sdk:analytics:7.5.0'
//友盟社会化分享
compile 'com.umeng.sdk:share-core:6.9.1'
compile 'com.umeng.sdk:share-qq:6.9.1.1'
compile 'com.umeng.sdk:share-wechat:6.9.1'
compile 'com.umeng.sdk:share-sina:6.9.1'
//分享面板
compile 'com.umeng.sdk:shareboard-widget:6.9.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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

QQ配置

app下的build.gradle中

defaultConfig {
        applicationId "xxx"
        minSdkVersion xx
        targetSdkVersion xx
        versionCode x
        versionName "x.x"
        manifestPlaceholders = [qqappid: "123456"]//此处配置自己的申请的qqappid
   }

微信配置

在包名根目录下创建wxapi文件夹,新建WXEntryActivity继承WXCallbackActivity。

	package 包根目录.wxapi;
		import com.umeng.socialize.weixin.view.WXCallbackActivity;
		public class WXEntryActivity extends WXCallbackActivity {
			//此activity不做任何操作
		}

在AndroidManifest中声明刚新建的WXEntryActivity

<activity
	android:name=".wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

初始化

在application的onCreate中

    public void onCreate() {
        super.onCreate();
        //初始化
        UMConfigure.init(this,"你的应用在友盟上的APPKEY","umeng",UMConfigure.DEVICE_TYPE_PHONE,null);
        //友盟相关平台配置
        PlatformConfig.setWeixin("123456", "123456");//微信APPID和AppSecret
        PlatformConfig.setQQZone("123456", "123456");//QQAPPID和AppSecret
        PlatformConfig.setSinaWeibo("123456", "123456",null);//微博APPID和AppSecret
        //开启debug
        UMConfigure.setLogEnabled(true);
    }

使用

初始化要分享的内容

//这里以图片举例
UMImage image= new UMImage(context, R.mipmap.ic_launcher);//分享图片

分享结果回调

UMShareListener umShareListener = new UMShareListener() {
    @Override
    public void onStart(SHARE_MEDIA platform) {
        Toast.makeText(context, "开始分享", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onResult(SHARE_MEDIA platform) {
        Toast.makeText(context, "分享成功", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onError(SHARE_MEDIA platform, Throwable t) {
        Toast.makeText(context, "分享失败", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onCancel(SHARE_MEDIA platform) {
        Toast.makeText(context, "分享取消", Toast.LENGTH_SHORT).show();
    }
};

发起分享

new ShareAction(context)
        .setDisplayList(SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE, SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.SINA)
        .setShareboardclickCallback(new ShareBoardlistener() {
            @Override
            public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
                new ShareAction(context).setPlatform(share_media).withMedia(image).setCallback(umShareListener).share();
            }
        }).open();

更多分享消息类型请查看umeng官方文档:https://developer.umeng.com/docs/66632/detail/66639#h3-u5206u4EABu7684u6D88u606Fu7C7Bu578B

猜你喜欢

转载自blog.csdn.net/qq_38376757/article/details/89324493