在Android studio项目中集成友盟分享

    xiaoxiao2021-03-25  149

    友盟分享,你值得拥有

    1.下载SDK

    下载最新版本的umeng的SDK.友盟开发者平台

    我下的是6.3.1版本

    2.导入jar包

    双击打开友盟集成工具,

    选择你要分享的平台,选择开发工具,是否使用分享面板,然后点击OK,就会在当前的文件夹里生成一个新的文件夹:

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

    3.添加对应的回调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,如下图所示(注意看目录结构):

    4.添加权限

    <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" /> 5.修改AndroidManiFest

    微信:

    <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,这个添加在<application下面

    <meta-data android:name="UMENG_APPKEY" android:value="561cae6ae0f55abd990035bf" > </meta-data> 6.修改build.gradle文件

    文件夹中的签名文件放到工程中,例如我下载的sdk中的签名文件是debug.keystore

    然后增减签名文件的密码:

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

    然后在buildTypes中将signingConfigs配置进去,如下图所示:

    7.配置各个平台的AppKey

    建立application文件,随便起个名字,比如我的是App,在AndroidManifest中配置,如果项目中有就不需要建立

    这里作为示例.只配置了微信,QQ./Qzone,新浪的三方AppKey.如果使用其他平台,再次增加对应平台的AppKey配置

    public class App extends Application{ { PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3"); PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com"); } } 在application中初始化SDK

    @Override public void onCreate() { super.onCreate(); UMShareAPI.get(this); } SDK的集成到此已经准备完毕,那么如何调用,打开分享面板呢?

    8.在需要弹出分享面板选择也的地方调用下列代码:

    new ShareAction(MainActivity.this).withText("hello") .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN) .setCallback(umShareListener).open(); setDisplayList中设置的就是你选择的所有平台,所传入参数的顺序就是最终显示的顺序

    UMShareListener umShareListener = new UMShareListener() { @Override public void onStart(SHARE_MEDIA share_media) { Toast.makeText(MainActivity.this,"start",Toast.LENGTH_SHORT).show(); } @Override public void onResult(SHARE_MEDIA share_media) { Toast.makeText(MainActivity.this,"result",Toast.LENGTH_SHORT).show(); } @Override public void onError(SHARE_MEDIA share_media, Throwable throwable) { Toast.makeText(MainActivity.this,"error",Toast.LENGTH_SHORT).show(); } @Override public void onCancel(SHARE_MEDIA share_media) { Toast.makeText(MainActivity.this,"cancel",Toast.LENGTH_SHORT).show(); } }; 最后在Activity中复写onActivityResult方法,注意,不能在fragment中实现,如果需要在fragment中调用那么就在fragment依赖的Activity'中实现 .

    onAcitivitResult方法的实现如下: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } 这样弹出的分享面板上pupwindow,在屏幕的下面显示,如果想让显示在屏幕的中间,在需要弹出分享面板的地方调用下面代码:

    ShareBoardConfig config = new ShareBoardConfig(); config.setShareboardPostion(ShareBoardConfig.SHAREBOARD_POSITION_CENTER); config.setMenuItemBackgroundShape(ShareBoardConfig.BG_SHAPE_CIRCULAR); // 圆角背景 new ShareAction(MainActivity.this).withText("hello") .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN) .setCallback(umShareListener).open(config); 关于友盟的集成到此就说完了,因为使用的其他功能,请移步 友盟开发者平台

    转载请注明原文地址: https://ju.6miu.com/read-3547.html

    最新回复(0)