一、友盟QQ分享不走回调方法
集成友盟社会化分享后,除了QQ、QQZone以外,其他分享都能正常显示分享成功、取消分享,而QQ和QQ空间明明分享成功了,但是并没有走回调方法,不显示成功失败或者取消。原因很可能是你的分享代码代码写在了Fragment中,QQ分享成功后并不走Fragment的onActivityResult()方法,需要把分享的方法写在Activity中,并在onActivityResult方法中添加回调监听,然后在Fragment中调用Activity中的分享方法即可。
@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(context).onActivityResult(requestCode, resultCode, data);}
二、友盟QQ分享成功但是始终显示分享取消
QQ分享成功后,但是总是显示取消分享,原因可能是在AndroidManifest中没有给QQ的AuthActivity配置正确的scheme,scheme应该是“tencent”加上QQ的AppID。
其中UMENG_QQ格式为“tencent+APPID”。
private void screenshot() {
Bitmap bmp;
// 获取屏幕
View dView = findViewById(R.id.ly_invite);
dView.setDrawingCacheEnabled(true);
dView.buildDrawingCache();
bmp = dView.getDrawingCache();
if (bmp !=null) {
try {
// 获取内置SD卡路径
String sdCardPath = Environment.getExternalStorageDirectory().getPath();
// 图片文件路径
String filePath = sdCardPath + File.separator +"aoqu_share.png";
File file =new File(filePath);
FileOutputStream os =new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 100, os);
os.flush();
os.close();
}catch (Exception e) {
}
}
UMImage imagebmp =new UMImage(this, bmp);//bitmap文件
new ShareAction(this)
.setDisplayList( SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.QZONE, SHARE_MEDIA.WEIXIN_FAVORITE)
// .withText("我在奥趣抓娃娃快来一起玩")
.withMedia(imagebmp)
.setCallback(new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onResult(SHARE_MEDIA share_media) {
}
@Override
public void onError(SHARE_MEDIA share_media, Throwable throwable) {
}
@Override
public void onCancel(SHARE_MEDIA share_media) {
}
}).setCallback(shareListener).open();
}
private UMShareListenershareListener =new UMShareListener() {
/**
* @descrption 分享开始的回调
* @param platform 平台类型
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
* @descrption 分享成功的回调
* @param platform 平台类型
*/
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(InviteActivity.this,platform+"成功了", Toast.LENGTH_LONG).show();
// share(shareType);
}
/**
* @descrption 分享失败的回调
* @param platform 平台类型
* @param t 错误原因
*/
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(InviteActivity.this, platform+"失败" + t.getMessage(), Toast.LENGTH_LONG).show();
}
/**
* @descrption 分享取消的回调
* @param platform 平台类型
*/
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(InviteActivity.this, platform+"取消了", Toast.LENGTH_LONG).show();
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}