现在大火的app,抖音肯定有姓名。19年初抖音就开始支持Android应用接入抖音分享以及登录了,目前市场上我知道的轻颜相机已经集成分享。最近有一个新需求就是集成抖音分享,集成较为简单,但是也由于疏忽遇到了小的问题。这里整体梳理集成流程供大家参考。

抖音分享开发者文档:http://open.douyin.com/platform/doc/m-1-3-2

集成准备:SDK最低支持:Android API 16 - 4.1.x版本 (这里需要升级自己项目的minSdkVersion>=16 如果满足条件请忽略)

向抖音短视频申请你的clientkey及相关权限  (这里授权登录,携带话题等需要另外申请,目前我这里只集成分享)

集成SDK分别在gradle文件中添加如下图

maven { url 'https://dl.bintray.com/aweme-open-sdk-team/public' }

compile 'com.bytedance.ies.ugc.aweme:open-sdk:0.0.1.1'

开始集成:

1.添加权限

2.初始化在Application中,初始化TikTokOpenApiFactoryString clientkey = "XXXXX"; // 修改为在开发者应用登记页面申请的clientkey

TikTokOpenApiFactory.init(new BDOpenConfig(clientkey));

3.目前抖音支持视频和图片分享这里举例视频分享ArrayList mUri = new ArrayList<>();

mUri.add(UriUtil.convertUriToPath(activity, Uri.parse(shareBean.video_url)));TiktokOpenApi bdOpenApi = TikTokOpenApiFactory.create(activity);

Share.Request request = new Share.Request();

DYVideoObject videoObject = new DYVideoObject();

videoObject.mVideoPaths = mUri;

DYMediaContent content = new DYMediaContent();

content.mMediaObject = videoObject;

request.mMediaContent = content;

request.mState = "ss";

request.callerLocalEntry = "xx.bdopen.BdEntryActivity";

request.mTargetApp = DYOpenConstants.TARGET_APP.AWEME;

bdOpenApi.share(request);

注意:

request.mTargetApp = DYOpenConstants.TARGET_APP.AWEME;    抖音文档没有明确说明,但是必须设置,否则你别想调起抖音,别问我为啥知道,都是泪啊

其次视频路径必须是绝对路径抖音提供的demo里有获取绝对路径的util代码

4.接受回调类,这里使用抖音提供demo里的方式

包名下创建bdopen.BdEntryActivity,初始化TikTokOpenApiFactory,实现BDApiEventHandler接口,在onResp方法中回调授权结果。

注:bdopen.前边的package路径需和app的包名一致,否则回调将找不到这个类,也可以选择在传分享参数时,通过request.callerLocalEntry参数来自己指定接收回调的全路径 例如request.callerLocalEntry = "xx.bdopen.BdEntryActivity";public class BdEntryActivity extends Activity implements BDApiEventHandler {

private static PlatformUtils.OnPlatformShareListener mOnPlatformShareListener;

private static Activity mActivity;

TiktokOpenApi ttOpenApi;

@Override

public void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

ttOpenApi = TikTokOpenApiFactory.create(this);

ttOpenApi.handleIntent(getIntent(), this);

}

public static void shareDouYin(Activity activity, ShareBean shareBean, PlatformUtils.OnPlatformShareListener onPlatformShareListener) {

mActivity = activity;

mOnPlatformShareListener = onPlatformShareListener;

ShareDouYinUtil.getInstance().share(activity, shareBean);

}

@Override

public void onReq(BaseReq req) {

}

@Override

public void onResp(BaseResp resp) {

if (resp.getType() == DYOpenConstants.ModeType.SHARE_CONTENT_TO_DY_RESP) {

Share.Response response = (Share.Response) resp;

if (response != null && response.errorCode == DYOpenConstants.ErrorCode.ERR_OK)

mOnPlatformShareListener.onShareComplete(PlatformConst.PLAT_NAME_DOU_YIN);

else

mOnPlatformShareListener.onError();

startActivity(new Intent(this, mActivity.getClass()));

finish();

}

}

@Override

public void onErrorIntent(@Nullable Intent intent) {

mOnPlatformShareListener.onError();

startActivity(new Intent(this, mActivity.getClass()));

finish();

}

}

这里有两个需要注意的点:

收到回调处理完逻辑之后记得finish()这个页面否则你会一脸懵逼咋一片白我的布局呢,哈哈。

如果只集成分享记得在回调分享结果外层添加if (resp.getType() ==BDOpenConstants.ModeType.SEND_AUTH_RESPONSE)

5.抖音分享对图片视频有一定限制

//视频限制

* 检测文件是否可以导入,要求如下

* 1、时长不满足,要求视频在3s-1小时内;

* 2、格式要求mp4文件,且文件支持解析

* 3、画幅尺寸 最小边 小于1100;

* 4、多图生成照片电影,暂无限制;

//图片限制

* 检测图文是否可以导入,要求如下

* 条件一:宽高都大于360

* 条件二:高宽比小于等于2.2

* 条件三:高宽比大于等于1/2.2

返回码参考:public interface ErrCode {

int ERR_OK = 0;      // 成功

int ERR_FAILED_COMMON = -1; // 通用错误类型, 一般未知的错误会走这个回调

int ERR_USER_CANCEL = -2; // 用户手动取消,用户拒绝权限,中断流程等

int ERR_SEND_FAIL = -3; // 发送失败

int ERR_AUTH_DENIED = -4; // 权限错误, 第三方未获取相关分享权限或获取权限失败

int ERR_UNSUPPORT = -5; // 文件解析过程出错或命中其它的一些限制

}

6.混淆

千万记得混淆,要不然打包你的抖音分享就无法成功。但是抖音开发者文档并没有加混淆说明,这一点很不友好。这是我自己加的,后面打包分享正常。

#抖音混淆

-keep class com.bytedance.** { *;}

android抖音布局,Android快速集成抖音分享相关推荐

  1. Android快速集成抖音分享

    现在大火的app,抖音肯定有姓名.19年初抖音就开始支持Android应用接入抖音分享以及登录了,目前市场上我知道的轻颜相机已经集成分享.最近有一个新需求就是集成抖音分享,集成较为简单,但是也由于疏忽 ...

  2. Android app快速集成Mob shareSDK分享到微信和QQ

    Android app集成Mob shareSDK分享到微信和QQ 在线安装方法介绍 注意需要用到的appKey和appSecret 请自行到http://www.mob.com官网申请,这里不介绍申 ...

  3. android 拍照固定区域,android相机区域拍照,快速集成

    使用相机拍摄指定区域,自己封装了个工具类,直接使用就可以 代码使用如下 public class MainActivity extends Activity implements OnClickLis ...

  4. android 模板 ui布局,Android UI布局

    一.线性布局-LinearLayout(至上而下布局) 其中 android:orientation="vertical"意思为垂直 方向的线性布局,此处的"vertic ...

  5. android系统五大布局,android 五大布局文件

    android中为了适应各种布局的格式,提供了5种布局格式: LinearLayout(线性布局)FrameLayout(帧布局)RelativeLayout(相对布局)TableLayout(表格布 ...

  6. android 4个布局,Android - 4种基本布局

    1.线性布局 LinearLayout:线性布局 android:orientation="horizontal" android:layout_width="match ...

  7. android webviwe 头布局,Android布局问题,带有WebView下方的按钮

    您需要使用android:layout_above="@+id/btnok"作为您的webview,并填写_parent作为webview的宽度和高度. 但是,需要注意的是,在1. ...

  8. Android自定义组合布局,Android 流式布局 + 自定义组合控件

    自定义组合控件 package yanjupeng.bawei.com.day09.two; import android.content.Context; import android.util.A ...

  9. android win8风格布局,Android仿Win8界面开发

    本文将要模仿Win8界面的一个设计,一个一个的方块.方法很简单.这里自己把图片改改就可以成为自己想要的界面了. 1.首先来看看自定义的MyImageView: package com.example. ...

  10. android梅花形布局,Android相对布局实现各种梅花效果

    一.效果图如下: 第一部是往drawable文件夹里放一个图片名为icon.png的图片,首先在这里说明Android只能放扩展名为png.jpg.gif的图片: 然后编写main.xml文件,代码如 ...

最新文章

  1. pandas 的describe的参数含义
  2. Table——高淇JAVA300讲笔记之Guava
  3. H5 canvas 绘图
  4. 次世代3D游戏角色是如何打造出来的?
  5. 蓝桥杯 每周一练 第一周(3n+1问题)
  6. 非递归遍历二叉树(算法导论第三版第十章10.4-5)
  7. Table Store: 海量结构化数据实时备份实战
  8. MTK 驱动开发(41)---MTK 调试工具
  9. php动态交叉表,PHP Array交叉表实现代码
  10. 选数 2002年NOIP全国联赛普及组
  11. app评论如何抓取_可能是史上最独一无二的中国高铁APP——高铁通
  12. 虚拟机常见的几种上网方式
  13. python 密码安全_python密码安全程序
  14. 阿里云mysql读写分离实现_MySQL-Proxy实现MySQL读写分离
  15. 分享超高清多机位现场直播间搭建方案
  16. QQ桌球瞄准器开发(2)创建项目添加主窗体
  17. 2021高考志愿填报总结-yy
  18. 服务器开机显示f1 f2,开机提示按F1/F2才能进入系统的解决方法
  19. 把方形头像切成圆形的头像工具类
  20. D2D D3D12 渲染视频帧思路及实现

热门文章

  1. 带无线驱动的linux版本,CentOS 5.6 上安装支持802.11b/g无线网卡驱动具体过程
  2. 几个新的H5标签介绍
  3. 分享大学生关于创新创业的想法,包括外卖私人订制化,网购衣服3D化远程试衣,睡眠耳机开发等等创新创业想法。
  4. 简述计算机数控系统的工作原理,计算机数控系统与802D系统编程基本原理
  5. VMware虚拟机安装ubuntu后无法复制文件的解决办法
  6. 东北大学——应用数理统计——笔记
  7. 如何提供网络冗余和稳定连接
  8. 模电——电阻与电容并联作用
  9. linux下nohup后台运行RSSHub等nodejs项目,开启与关闭
  10. 微信小程序开发部署发布可以在10分钟内完成