友盟(Android)- 分享
这里仅记录我在使用UMeng(友盟)平台遇到的问题
- QQ无法分享纯文本
- QQ无法分享图片,且直接走了Cancel的回调
- QQ分享截取View的bitmap,多次点击分享无效,且Debug时bitmap返回为null
QQ无法分享纯文本
解决方式: Android进阶之路 - 解决友盟无法QQ分享纯文本的问题
QQ无法分享图片,且直接走了Cancel的回调
解决方式: application中的qqid和manifests的qqid需要填写同一个,如果用默认的就全都用默认id
QQ分享截取View的bitmap,多次点击分享无效,且Debug时bitmap返回为null
解决方式:这里需要存储权限、权限、权限!!
AndroidManifest.xml添加静态权限
android.permission.WRITE_EXTERNAL_STORAGEandroid.permission.READ_EXTERNAL_STORAGE
申请动态权限场景伪代码(截取View转为Bitmap用于QQ分享)
RxPermissions rxPermissions = new RxPermissions(this);//Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA 文件存储权限、相机权限rxPermissions.request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA).subscribe(new Observer<Boolean>() {@Overridepublic void onSubscribe(Disposable d) {}@Overridepublic void onNext(Boolean aBoolean) {//有权限的状态if (aBoolean) {Display displayQQ = getWindowManager().getDefaultDisplay();UMImage umImageQQ = new UMImage(InviteAwardActivity.this, convertViewToBitmap(mSharePicture, displayQQ));/* 便于找到自身错误if (thumbImage == null) {ToastUtils.shortShow("分享图片为空");}*/umImageQQ.setThumb(umImageQQ);boolean qqClientAvailable = PlatformUtil.isQQClientAvailable(InviteAwardActivity.this);if (qqClientAvailable) {new ShareAction(InviteAwardActivity.this).setPlatform(SHARE_MEDIA.QQ).withMedia(umImageQQ).setCallback(new UMShareListener() {@Overridepublic void onStart(SHARE_MEDIA shareMedia) {}@Overridepublic void onResult(SHARE_MEDIA shareMedia) {ToastUtils.shortShow("分享成功!");}@Overridepublic void onError(SHARE_MEDIA shareMedia, Throwable throwable) {}@Overridepublic void onCancel(SHARE_MEDIA shareMedia) {}}).share();} else {ToastUtils.shortShow("请安装QQ客户端");}}//无权限的状态else {Toast.makeText(InviteAwardActivity.this, getString(R.string.picture_jurisdiction), Toast.LENGTH_SHORT).show();}}@Overridepublic void onError(Throwable e) {}@Overridepublic void onComplete() {}});
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
