开发者社区> 问答> 正文

钉钉Android分享SDK接入,分享本地图片失败。

SDK版本:
implementation'com.alibaba.android:ddsharesdk:1.2.0'

API

File file = new File(path);
if (Build.VERSION.SDK_INT > 29) {
path = getFileUri(BaseApplication.getInstance(),file);
} else {
if (!file.exists()) {
return;
}
}
//初始化一个DDImageMessage
DDImageMessage imageObject = new DDImageMessage();
imageObject.mImagePath = path;

    //构造一个mMediaObject对象
    DDMediaMessage mediaMessage = new DDMediaMessage();
    mediaMessage.mMediaObject = imageObject;

    //构造一个Req
    SendMessageToDD.Req req = new SendMessageToDD.Req();
    req.mMediaMessage = mediaMessage;

// req.transaction = buildTransaction("image");

    //调用api接口发送消息到支付宝
    if(isSendDing){
        iddShareApi.sendReqToDing(req);
    } else {

        iddShareApi.sendReq(req);
    }

现象:Android 11以下可以分享成功
android 10的文件地址:
/storage/emulated/0/amarsoft/share/share_pic.jpg

失败的文件地址:
/storage/emulated/0/Android/data/com.amarsoft.irisk/files/share_pic.jpg

Android 11及以上,会跳转到钉钉选择用户的页面,点击某一个发送对象,点击发送,无响应。

image.png

展开
收起
游客2jnxgotq5gjei 2023-11-16 16:21:46 245 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在集成钉钉 Android 分享 SDK 时,若发生分享本地图片失败的问题,可能存在以下几种原因:

    1. 图片太大:分享的图片大小超过了钉钉的限制。请确保分享的图片大小不超过 5MB。
    2. 权限问题:钉钉需要读取相册的权限。您需要在 AndroidManifest.xml 文件中声明此权限,并在运行时请求用户的授权。
    3. 图片格式不支持:只有 JPG、JPEG、PNG 格式的图片才能被分享。如果您尝试分享其他格式的图片,可能会出现失败。
    4. 网络问题:在分享图片时,请确保网络连接畅通。
    5. 库的兼容性问题:如果您的项目使用的库与钉钉 SDK 存在冲突,也可能导致图片分享失败。可以尝试更新或替换有问题的库。
    2023-11-17 13:58:14
    赞同 展开评论 打赏
  • 图片路径错误或不存在:确保你提供的图片路径是正确的,并且该图片确实存在于指定的位置。

    权限问题:在 Android 上,你需要在 manifest 文件中添加读取和写入外部存储的权限。

    SDK 版本过旧:如果使用的 SDK 版本太旧,可能会导致一些问题。可以尝试更新到最新版本的 SDK。

    网络问题:如果你的应用程序需要访问网络才能完成分享操作,请检查网络连接是否正常。

    2023-11-16 17:09:06
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载