友盟+搜索

{{errorMsg}}

产品概述

Android U-share 6.0sdk是在5.0+的基础上做了进一步的优化,降低了包的大小,对于三方的jar提供了更多选择(精简版,原生版),并提供了更多实用的接口,方便了用户的集成和升级。同时6.0的版本兼容5.0+的版本,老用户,只要替换对应的jar就可以了。 特别提示:之后我们会针对6.0+的版本提供更多方便个性的功能,所以建议用户升级,并留意我们接下来的新功能。

获取友盟Appkey

如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它.

如果你尚未在友盟注册开发者账号,需要先注册,注册之后登录你的账号,点击添加新应用,填写完应用基本信息后,将进入"下载SDK并添加代码"页面,此页面即可得到Appkey。

下载并安装SDK

下载SDK最新版 如下图所示:

老用户升级说明

4.x升级说明

如果您之前使用的是4.x版本的sdk,请删除所有的社会化分享代码,jar以及资源文件,更新现在最新版的sdk,根据快速集成文档重新集成,因为4.x版本接口与现在完全不一样接口差异有很大的变化

5.x升级说明

之前使用友盟分享5.0+版本的老用户,可以直接替换对应jar和资源文件就可以了,但是注意默认下载的是新浪精简版,如果使用新浪精简版,不再需要.so文件,对应的Manifest配置,以及WBShareActivity.java。微信精简版,和qq精简版对应的jar名字不一样,需要将原有的jar删除,替换精简的jar,如果使用完整版直接替换即可。 res中的资源文件也要进行替换。 对应jar包名字对应如下:

平台 老版本 精简版(新版) 完整版(新版)
核心库 umeng_social_sdk.jar umeng_social_api.jar umeng_social_net.jar umeng_social_shareview.jar(可选,新浪精简版 豆瓣人人使用)umeng_social_shareboard.jar(可选 如果没有使用分享面板可以不使用)umeng_shareboard_widget.jar(工程中存在support v4或不使用面板可以不加) 同精简版
QQ mta-sdk-1.6.2.jar open_sdk_r5509_lite.jar SocialSDK_QQZone_3.jar SocialSDK_QQ_Simplify.jar mta-sdk-1.6.2.jar open_sdk_r5756_lite.jar SocialSDK_QQ_Full.jar
新浪 SocialSDK_Sina.jar weiboSDKCore_3.1.4.jar libweibosdkcore.so SocialSDK_Sina_Simplif.jar SocialSDK_Sina_Full.jar weiboSDKCore_3.1.4.jar libweibosdkcore.so
微信 SocialSDK_WeiXin_1.jar SocialSDK_WeiXin_2.jar SocialSDK_WeChat_Simplify.jar libammsdk.jar SocialSDK_WeiXin_Full.jar

6.0x版本

之前使用友盟分享6.0+版本的老用户,可以直接替换对应jar和资源文件就可以了,注意对应jar的名字即可

> >
平台 精简版(老板) 完整版(老板) 精简版(新版) 完整版(新版)
核心库 umeng_social_apiv6.0.x.jar umeng_social_viewv6.0.x.jar umeng_social_netv6.0.x.jar 同精简版 umeng_social_api.jar umeng_social_net.jar umeng_social_shareview.jar(可选,新浪精简版 豆瓣人人使用) umeng_social_shareboard.jar(可选,如果没有使用分享面板可以不使用) umeng_shareboard_widget.jar(工程中存在support v4或不使用面板可以不加) 同精简版
QQ SocialSDK_QQZone_3.jar SocialSDK_umengqq.jar mta-sdk-1.6.2.jar open_sdk_r5509_lite.jar SocialSDK_QQZone_3.jar SocialSDK_QQ_Simplify.jar mta-sdk-1.6.2.jar open_sdk_r5756_lite.jar SocialSDK_QQ_Full.jar
新浪 SocialSDK_umengsina.jar SocialSDK_Sina.jar weiboSDKCore_3.1.4.jar libweibosdkcore.so SocialSDK_Sina_Simplif.jar SocialSDK_Sina_Full.jar weiboSDKCore_3.1.4.jar libweibosdkcore.so
微信 同完整版 SocialSDK_WeiXin_1.jar SocialSDK_WeiXin_2.jar SocialSDK_WeChat_Simplify.jar libammsdk.jar SocialSDK_WeiXin_Full.jar

umeng_shareboard_widget.jar

关于这个jar只是分享面板的辅助jar,如果你的工程使用了v4,可以不加入这个jar,如果没有使用v4需要加入这个jar

umeng_social_tool.jar

如果想使用图片加水印,图文合并的功能添加这个jar,不使用可以删掉,功能使用,参照进阶文档的特殊功能。

友盟debug模式

6.1.0之后的版本如果集成之后出现任何问题,可以查看报错必看文档,通过 Config.DEBUG = true;

开启debug模式,检查问题。

快速集成

快速集成是以完整版为例,对于新浪微博精简版不再使用回调Activity,而是使用onActivityForResult,qqmainfest中的配置稍有更改,微信回调Activity的路径稍有修改 ,一下文档中会提到

AndroidStudio

新建立一个工程

拷贝jar及res

拷贝jar和res有如下两种形式

a.将main文件夹以及platform(选择你想使用的平台即可)文件下,对应的资源文件和jar放入你的工程

例如我想用微信,qq和微博三个平台如下图(配图是以完整版为例):

b.如果不想像a方式一样一个个拷贝,可以使用集成工具umeng_integrate_tool.jar

双击点开这个工具,如下图所示:

选择你想使用的平台,以及你所使用的开发工具,点击ok 会在当前目录下生成一个新的文件夹umeng_integratetool_result 只需将该文件夹下生成的对应文件对应放入你的工程中即可 这里注意如果使用了新浪微博精简版,或者豆瓣人人腾讯微博,需要加入umeng_social_shareview.jar及其对应的资源文件,如果没有使用这些平台可以不加 如果您的程序不想使用我们的分享面板,想自定义UI分享UI界面,umeng_social_shareboard.jar以及对应的资源文件也可以不用加 如果您使用了我们的分享面板,您的工程已经依赖的v4,可以不使用我们的umeng_shareboard_widget.jar

添加对应的回调Activity

包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity。这里注意一定是包名路径下,例如我的包名是com.umeng.soexample,则配置如下:(需要注意,如果使用精简版WXCallbackActivity的路径为com.umeng.weixin.callback.WXCallbackActivity,如果使用完整版路径是com.umeng.socialize.weixin.view.WXCallbackActivity)

在这里你可能会爆红也可能不爆红这是由于IDE还没有sync刚才放入的jar包。 同理需要建立回调的平台还有支付宝与易信,支付宝是需要建立一个apshare的文件夹,然后建立一个ShareEntryActivity的类,继承ShareCallbackActivity。易信是需要建立一个yxapi的文件夹,建立一个YXEntryActivity的类继承YXCallbackActivity。如果不使用这两个平台可以不用建立。 (如果使用精简版则不需要)同理新浪微博也需要一个回调的Activity,与微信不同的是它只需要在包名目录下建立一个名为WBShareActivity类即可,不用建立文件夹,该类继承WBShareCallBackActivity,如下图所示(注意看目录结构):

添加onActivityResult

如果使用的是qq或者新浪精简版jar,需要在您使用分享或授权的Activity(fragment不行)中添加如下回调代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);

}

修改AndroidManiFest

首先需要添加权限:
    <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" />

然后加入sdk中需要的Activity:

新浪微博:(精简版不需要)

 <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:windowSoftInputMode="adjustResize"
        android:exported="false" >
    </activity>
       <service android:name="com.sina.weibo.sdk.net.DownloadService"
        android:exported="false"></service>

微信:

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

支付宝:

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

qq精简版:

<activity
        android:name="com.umeng.qq.tencent.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="tencent100424468" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.umeng.qq.tencent.AssistActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:configChanges="orientation|keyboardHidden|screenSize"/>

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="tencent100424468" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.tencent.connect.common.AssistActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:configChanges="orientation|keyboardHidden|screenSize"/>

分享编辑页(只有新浪微博精简版,豆瓣人人腾讯微博需要):

 <activity
        android:name="com.umeng.socialize.editorpage.ShareActivity"
        android:theme="@style/Theme.UMDefault"
        android:excludeFromRecents="true"
        />

其他平台的回调activity请到附录中查询。

添加友盟appkey
<meta-data
        android:name="UMENG_APPKEY"
        android:value="561cae6ae0f55abd990035bf" >
    </meta-data>

修改build.gradle文件

将文件夹中的签名文件放入到工程中,例如我的签名文件是debug.keystore
然后增加签名文件的密码:

signingConfigs {
    debug {
        storeFile file('debug.keystore')
        storePassword "android"
        keyAlias "androiddebugkey"
        keyPassword "android"
    }
}

然后在buildTypes中将这个signingConfigs配置进去,如下图所示:
签名文件如果不加,部分平台的授权会受到影响。

配置各个平台的appkey

建立一个application文件,随便起一个名字,比如叫App,别忘了在AndroidManifest文件中配置(如果本身已有,不需要重新建立):

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:name=".App"
    android:theme="@style/AppTheme">

在application文件中配置三方平台的appkey:

public class App extends Application{
{

    PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");
    PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad");
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");


}
}

在application中初始化sdk,这个初始化最好放在application的程序入口中,防止意外发生:

    @Override
    public void onCreate() {
    super.onCreate();
    UMShareAPI.get(this);
}

如果您使用了新浪微博,需要在这里设置回调地址:

Config.REDIRECT_URL = "您新浪后台的回调地址"

第三方分享

分享可以通过如下代码实现,不同平台只要传入不同的SHARE_MEDIA即可。

            new     ShareAction(MainActivity.this).setPlatform(SHARE_MEDIA.QQ)
                    .withText("hello")
                    .setCallback(umShareListener)
                    .share();

其中umShareListener为回调监听,构建如下,其中分享成功会回调onComplete,取消分享回调onCancel,分享错误回调onError,对应的错误信息可以用过onError的Throwable参数来打印

private UMShareListener umShareListener = new UMShareListener() {
    @Override
    public void onResult(SHARE_MEDIA platform) {
        Log.d("plat","platform"+platform);

            Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onError(SHARE_MEDIA platform, Throwable t) {
        Toast.makeText(MainActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
        if(t!=null){
            Log.d("throw","throw:"+t.getMessage());
        }
    }

    @Override
    public void onCancel(SHARE_MEDIA platform) {
        Toast.makeText(MainActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();
    }
};

更多分享类型请参见详细集成文档或参照demo。

第三方授权

授权可以通过如下代码实现,不同平台只要传入不同的SHARE_MEDIA即可。

          UMShareAPI  mShareAPI = UMShareAPI.get( MainActivity.this );
          mShareAPI.doOauthVerify(MainActivity.this, SHARE_MEDIA.QQ, umAuthListener);

其中umAuthListener为授权回调,构建如下,其中授权成功会回调onComplete,取消授权回调onCancel,授权错误回调onError,对应的错误信息可以用过onError的Throwable参数来打印

private UMAuthListener umAuthListener = new UMAuthListener() {
    @Override
    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
        Toast.makeText(getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onError(SHARE_MEDIA platform, int action, Throwable t) {
        Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onCancel(SHARE_MEDIA platform, int action) {
        Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
    }
};

授权中只是能拿到uid,openid,token这些授权信息,想获取用户名和用户资料,需要调用获取用户信息的接口。

获取用户信息

授权中只是能拿到uid,openid,token这些授权信息,想获取用户名和用户资料,需要使用这个接口 实现的方法与授权和解除授权类似:

mShareAPI.getPlatformInfo(UserinfoActivity.this, SHARE_MEDIA.SINA, umAuthListener);

各平台返回的用户信息对照表,请参照进阶文档

打开分享面板

           new ShareAction(MainActivity.this).withText("hello")
                   .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
                    .setCallback(umShareListener).open();

打开面板的使用方式与分享类似,只是一个设置单一的使用平台,一个设置一个平台list,一个最后调用的是share方法,一个调用open的方法。关于分享面板还有许多拓展功能,可以参照详细集成文档。 最后在Activity的onActivityResult中加入我们的回调

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}

eclipse

新建立一个工程

拷贝jar及res

拷贝jar和res有如下两种形式

a.将main文件夹以及platform(选择你想使用的平台即可)文件下,对应的资源文件和jar放入你的工程

例如我想用微信,qq和微博三个平台如下图(配图是以完整版为例): 注意如果使用的是精简版,微信对应的jar包名字是SocialSDK_umengwx.jar 和SocialSDK_WeiXin_2.jar,新浪对应的jar名字是SocialSDK_umengsina.jar,qq对应的是SocialSDK_umengqq.jar和SocialSDK_QQZone_3.jar

b.如果不想像a方式一样一个个拷贝,可以使用集成工具umeng_integrate_tool.jar

双击点开这个工具,如下图所示:

选择你想使用的平台,以及你所使用的开发工具,点击ok 会在当前目录下生成一个新的文件夹umeng_integratetool_result 只需将该文件夹下生成的对应文件对应放入你的工程中即可
这里注意如果使用了新浪微博精简版,或者豆瓣人人腾讯微博,需要加入umeng_social_shareview.jar及其对应的资源文件,如果没有使用这些平台可以不加 如果您的程序不想使用我们的分享面板,想自定义UI分享UI界面,umeng_social_shareboard.jar以及对应的资源文件也可以不用加 如果您使用了我们的分享面板,您的工程已经依赖的v4,可以不使用我们的umeng_shareboard_widget.jar

添加对应的回调Activity

包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity。这里注意一定是包名路径下,例如我的包名是com.umeng.soexample,则配置如下:(需要注意,如果使用精简版WXCallbackActivity的路径为com.umeng.weixin.callback.WXCallbackActivity,如果使用完整版路径是com.umeng.socialize.weixin.view.WXCallbackActivity)

在这里你可能有红线报警也可能没有,这是由于IDE还没有sync刚才放入的jar包。 同理需要建立回调的平台还有支付宝与易信,支付宝是需要建立一个apshare的文件夹,然后建立一个ShareEntryActivity的类,继承ShareCallbackActivity。易信是需要建立一个yxapi的文件夹,建立一个YXEntryActivity的类继承YXCallbackActivity。如果不使用这两个平台可以不用建立。 (如果使用精简版则不需要配置)同理新浪微博也需要一个回调的Activity,与微信不同的是它只需要在包名目录下建立一个名为WBShareActivity类即可,不用建立文件夹,该类继承WBShareCallBackActivity,如下图所示(注意看目录结构):

添加onActivityResult

如果使用的是qq或者新浪精简版jar,需要在您使用分享或授权的Activity(fragment不行)中添加如下回调代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);

}

修改AndroidManiFest

首先需要添加权限:
   <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" />

然后加入sdk中需要的Activity:

新浪微博:(精简版不需要)

 <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:windowSoftInputMode="adjustResize"
        android:exported="false" >
    </activity>
       <service android:name="com.sina.weibo.sdk.net.DownloadService"
        android:exported="false"></service>

微信:

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

支付宝

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

qq精简版:

<activity
        android:name="com.umeng.qq.tencent.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="tencent100424468" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.umeng.qq.tencent.AssistActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:configChanges="orientation|keyboardHidden|screenSize"/>

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="tencent100424468" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.tencent.connect.common.AssistActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:configChanges="orientation|keyboardHidden|screenSize"/>

分享编辑页(只有新浪微博精简版,豆瓣人人腾讯微博需要):

 <activity
        android:name="com.umeng.socialize.editorpage.ShareActivity"
        android:theme="@style/Theme.UMDefault"
        android:excludeFromRecents="true"
        />

其他平台的回调activity请到附录中查询。

添加友盟appkey
<meta-data
        android:name="UMENG_APPKEY"
        android:value="561cae6ae0f55abd990035bf" >
    </meta-data>

引入签名文件

在eclipse的工程设置中设置签名,将Custom debug keystore设置成你应用的签名文件(有些工程已经默认设置好了,可以跳过)例如我的签名文件是debug.keystore

配置各个平台的appkey以及初始化sdk

建立一个application文件,随便起一个名字,比如叫App,别忘了在AndroidManifest文件中配置(如果本身已有,不需要重新建立):

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:name=".App"
    android:theme="@style/AppTheme">

在application文件中配置三方平台的appkey:

public class App extends Application{
{

    PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");
    PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad");
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");


}
}

在application中初始化sdk,这个初始化最好放在application的程序入口中,防止意外发生:

    @Override
    public void onCreate() {
    super.onCreate();
    UMShareAPI.get(this);
}

如果您使用了新浪微博,需要在这里设置回调地址:

Config.REDIRECT_URL = "您新浪后台的回调地址"

第三方分享

分享可以通过如下代码实现,不同平台只要传入不同的SHARE_MEDIA即可。

            new ShareAction(MainActivity.this).setPlatform(SHARE_MEDIA.QQ)
                    .withText("hello")
                    .setCallback(umShareListener)
                    .share();

其中umShareListener为回调监听,构建如下,其中分享成功会回调onComplete,取消分享回调onCancel,分享错误回调onError,对应的错误信息可以用过onError的Throwable参数来打印

private UMShareListener umShareListener = new UMShareListener() {
    @Override
    public void onResult(SHARE_MEDIA platform) {
        Log.d("plat","platform"+platform);

            Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onError(SHARE_MEDIA platform, Throwable t) {
        Toast.makeText(MainActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
        if(t!=null){
            Log.d("throw","throw:"+t.getMessage());
        }
    }

    @Override
    public void onCancel(SHARE_MEDIA platform) {
        Toast.makeText(MainActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();
    }
};

更多分享类型请参见详细集成文档或参照demo。

打开分享面板

           new ShareAction(MainActivity.this).withText("hello")
                   .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
                    .setCallback(umShareListener).open();

打开面板的使用方式与分享类似,只是一个设置单一的使用平台,一个设置一个平台list,一个最后调用的是share方法,一个调用open的方法。关于分享面板还有许多拓展功能,可以参照详细集成文档。 最后在Activity的onActivityResult中加入我们的回调

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}