Android uemgn分享回调。细节

一、友盟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。

                                       

Android uemgn分享回调。细节_第1张图片

其中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);

    }



Android uemgn分享回调。细节_第2张图片


Android uemgn分享回调。细节_第3张图片



Android uemgn分享回调。细节_第4张图片

你可能感兴趣的:(Android uemgn分享回调。细节)