分享一套完整的android 分享功能代码

微信分享代码:

<pre name="code" class="html">public class WXEntryActivity extends Activity implements OnClickListener,
        IWXAPIEventHandler {

private IWXAPI api;
api = WXAPIFactory.createWXAPI(this, Constant.WEIXIN_APP_ID, false);
        api.handleIntent(getIntent(), this);
protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq req) {
        switch (req.getType()) {

        case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
            break;
        case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
            break;
        default:
            break;
        }
    }

    @Override
    public void onResp(BaseResp resp) {
        switch (resp.errCode) {
        case BaseResp.ErrCode.ERR_OK:
            if (MyApplication.loginShare.equals("login")) {
            String code = ((SendAuth.Resp) resp).code;
            new WeiXinLogin(this).getWeiXinInfo(code);
            Toast.makeText(this, R.string.auth_success, Toast.LENGTH_SHORT)
                    .show();
            }else{
                Toast.makeText(this, R.string.share_success, Toast.LENGTH_SHORT)
                .show();
            }
            break;
        case BaseResp.ErrCode.ERR_USER_CANCEL:
            if (MyApplication.loginShare.equals("login")) {
            Toast.makeText(this, R.string.auth_cancel, Toast.LENGTH_SHORT)
                    .show();
            }else{
                Toast.makeText(this, R.string.share_cancel, Toast.LENGTH_SHORT)
                .show();
            }
            break;
        case BaseResp.ErrCode.ERR_AUTH_DENIED:
            if (MyApplication.loginShare.equals("login")) {
            Toast.makeText(this, R.string.auth_failure, Toast.LENGTH_SHORT)
                    .show();
            }else{
                Toast.makeText(this, R.string.share_failure, Toast.LENGTH_SHORT)
                .show();
            }
            break;
        default:
            break;
        }
    }
}

public class WeiXinShare{

    private Activity context;
    private IWXAPI api;
    private static final int THUMB_SIZE = 150;

    public WeiXinShare(Activity context){
        this.context=context;
        api = WXAPIFactory.createWXAPI(context, Constant.WEIXIN_APP_ID);
        api.registerApp(Constant.WEIXIN_APP_ID);
    }
    public void shareText(int flag){
    WXTextObject textObj = new WXTextObject();
    textObj.text = context.getString(R.string.app_share_content);

    WXMediaMessage msg = new WXMediaMessage();
    msg.mediaObject = textObj;

    // msg.title = "Will be ignored";
    msg.description =context.getString(R.string.app_share_content);

    SendMessageToWX.Req req = new SendMessageToWX.Req();
    req.transaction = buildTransaction("text");
    req.message = msg;
    req.scene =flag;
    api.sendReq(req);
    }

    public void shareImg(int flag){
        Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.app_icon);
        WXImageObject imgObj = new WXImageObject(bmp);

        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = imgObj;

        Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
        bmp.recycle();
        msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction =buildTransaction("img");
        req.message = msg;
        req.scene =flag;
        api.sendReq(req);
//        context.finish();
    }
    private String buildTransaction(final String type) {
        return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
    }
    public void shareWebToFriend(String shareContext,String url){
        WXWebpageObject webpage = new WXWebpageObject();
        webpage.webpageUrl = url;
        WXMediaMessage msg = new WXMediaMessage(webpage);
        msg.title =context.getString(R.string.app_gosu);
        msg.description =shareContext;
        Bitmap thumb = BitmapFactory.decodeResource(context.getResources(), R.drawable.app_icon);
        msg.thumbData = Util.bmpToByteArray(thumb, true);

        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("webpage");
        req.message = msg;
        req.scene = 0;
        api.sendReq(req);
    }
    public void shareWebToZone(String shareContext,String url){
        WXWebpageObject webpage = new WXWebpageObject();
        webpage.webpageUrl =url ;
        WXMediaMessage msg = new WXMediaMessage(webpage);
        msg.title =shareContext;
        Bitmap thumb = BitmapFactory.decodeResource(context.getResources(), R.drawable.app_icon);
        msg.thumbData = Util.bmpToByteArray(thumb, true);

        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("webpage");
        req.message = msg;
        req.scene = 1;
        api.sendReq(req);
}
}

qq分享代码:

public class QShare {

    private Context context;
    public static Tencent mTencent;
    private String fileUrl;
    private int mExtarFlag = 0x00;

    public QShare(Context context) {
        this.context = context;
        if (mTencent == null) {
            mTencent = Tencent.createInstance(Constant.QQ_APP_ID, context);
        }
        fileUrl=MyApplication.photo_path+"app_icon.png";
    }

    public void shareToQ(String shareContent,String url) {
        final Bundle params = new Bundle();
        params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE,QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
        params.putString(QQShare.SHARE_TO_QQ_TITLE, context.getString(R.string.app_gosu));
        params.putString(QQShare.SHARE_TO_QQ_SUMMARY,shareContent);
        params.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, fileUrl);
        params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,url);
        mTencent.shareToQQ((Activity) context, params, qqShareListener);
    }
    public void shareToQZone(String shareContent,String url) {
        final Bundle params = new Bundle();
        params.putString(QQShare.SHARE_TO_QQ_TITLE, context.getString(R.string.app_gosu));
        params.putString(QQShare.SHARE_TO_QQ_SUMMARY, shareContent);
        params.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, fileUrl);
        params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,url);
        params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, mExtarFlag|= QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN);
        mTencent.shareToQQ((Activity) context, params, qqShareListener);
    }

    IUiListener qqShareListener = new IUiListener() {
        @Override
        public void onCancel() {
            Toast.makeText(context,
                    context.getString(R.string.share_cancel),Toast.LENGTH_LONG);
        }

        @Override
        public void onComplete(Object response) {
            // TODO Auto-generated method stub
            Toast.makeText(context,
                    context.getString(R.string.share_success),Toast.LENGTH_LONG);
        }

        @Override
        public void onError(UiError e) {
            // TODO Auto-generated method stub
            Toast.makeText(context,
                    context.getString(R.string.share_failure),Toast.LENGTH_LONG);
        }
    };
}

来源:成都app开发 www.cxb360.com

时间: 2024-11-05 14:46:42

分享一套完整的android 分享功能代码的相关文章

Android常用功能代码块

1.设置activity无标题,全屏 // 设置为无标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 设置为全屏模式 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 2.获得屏幕高度和宽度 //获取屏幕的高度和宽度用到WindowManager这个类 WindowMan

Bash玩转脚本4之搞一套完整的Android反编译与分包工具

一.前言 正在搞IOS的微信支付和支付宝支付,焦头烂额之时,天上掉下来一个Android分包工具的需求,觉得还蛮有意思,其实之前一直想搞一个类似的东西,正好趁着这次机会实践一下. [原文地址] (http://blog.csdn.net/yang8456211/article/details/52513354 ) (先说清楚需求,这个分包工具要干什么) 从产品角度 拿到一个apk安装包,然后用这个包去生成n个包,这n个包需要有特定的标示,能够根据包的标示去收集信息,而且这个n个包彼此不能覆盖安装

Android分享功能,微博、QQ、QQ空间等社交平台分享之入门与进阶

前言 如何能迅速做一个分享功能,那主要就是根据第一个步骤来做就好了,因为友盟的sdk包已经集成很多的内容了,只要你有相应的app和平台账号就可以能马上分享.进阶的内容就是从第三部分开始,这些内容不难,目的就是为了更好的优化分享体验. 1.先做一个简单的分享效果. 1.1 创建一个Android项目 以下项目所需要的jar包,图片等资源可到该网站下载SDK即可. http://dev.umeng.com/social/android/quick-integration?spm=0.0.0.0.Lk

Android -- 分享功能和打开指定程序

打开指定程序                                                                                Intent intent = new Intent(); ComponentName cmp = new ComponentName("com.sina.weibo","com.sina.weibo.EditActivity"); intent.setAction(Intent.ACTION_M

Android 分享功能的实现

I : 利用隐式Intent实现分享    1.应用实现分享的功能        1 /* 实现分享功能 */ 2 3 Intent intent = new Intent(); 4 intent.setAction(Intent.ACTION_SEND); 5 6 // 分享文本 7 intent.setType("text/plain"); // text/html ... 8 intent.putExtra(Intent.EXTRA_SUBJECT, "我要分享&quo

Android分享功能实现

通过系统分享组件实现分享功能 Intent.createChooser() 方法用来弹出系统分享列表. createChooser(Intent target, CharSequence title, IntentSender sender) 参数. 常规方法 public void share(Context context){ Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendInt

Android分享---调用系统自带的分享功能

以前我们总想到友盟等平台分享功能的集成,集成这玩意还得下载对应的jar包.当然,用这些平台的分享并不是说什么好处都没有,至少人家的统计功能还是很实用的.不过有的时候我们是不需要多余功能的,只需要能分享就行,那我们就可以直接用Andriod系统自带有分享功能去完成了.下面我来介绍如何实现系统的分享功能: 分享文本信息 1 Intent intent = new Intent(Intent.ACTION_SEND); 2 intent.setType("text/plain"); 3 in

Android - 小功能 - 利用最新版ShareSDK进行手动分享(自定义分享界面)

之前有用过Share SDK进行快捷分享,可是官方demo中的快捷分享的界面已经设置死了,而公司的产品又设计了自己的分享界面,这就需要我进行手动分享了. 看了一堆官方的文档,终于写出来了,好了,不废话,进入主题. 之前没有用过ShareSDK分享过的朋友建议先看看官方的文档,不要火急火急的就像照搬官方的demo, 此为文档地址:: http://wiki.sharesdk.cn/Android_快速集成指南 此为官方demo下载地址:http://sharesdk.cn/Download 此为我

Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力活:对于自动化测试与人工测试优缺势的问题,这里不想深入讨论,开一个博客收集一些观点然后开个讨论组讨论效果可能会更好. 标题上列的,是自己对web自动化这块统一的一个想象或是一套完整的自动化应所包含的的部分,目前完成了excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试