在微信开放平台中注册账号

微信开发平台

在管理中心中“创建移动应用”

按步骤填写应用信息,等待审核通过。

记录应用的appID。

在资源中心中可查看接入指南,下载开发工具包

将下载的 libammsdk.jar 添加到工程中

AndroidManifest.xml 中添加权限

<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在代码中使用开发工具包

WeixinUtil.java

import android.content.Context;import android.graphics.Bitmap;import com.tencent.mm.sdk.modelmsg.SendMessageToWX;import com.tencent.mm.sdk.modelmsg.WXImageObject;import com.tencent.mm.sdk.modelmsg.WXMediaMessage;import com.tencent.mm.sdk.modelmsg.WXTextObject;import com.tencent.mm.sdk.openapi.IWXAPI;import com.tencent.mm.sdk.openapi.WXAPIFactory;/** * 微信辅助类,用于微信分享 */public class WeixinUtil {    /**     * appID     */    public static final String APP_ID = "wx96d406a3af36bf38";    /**     * 缩略图大小     */    private static final int THUMB_SIZE = 150;    private IWXAPI api;    private Context context;    /**     * 单例模式     */    private static WeixinUtil instance;    private WeixinUtil(Context context){        this.context = context;        api = WXAPIFactory.createWXAPI(context, APP_ID, false);        api.registerApp(APP_ID);    }    public static WeixinUtil getInstance(Context context){        if (instance == null){            instance = new WeixinUtil(context);        }        return instance;    }    /**     * 发送文本信息到微信     * @param text     */    public void sendText(String text){        WXTextObject textObj = new WXTextObject();        textObj.text = text;        WXMediaMessage msg = new WXMediaMessage();        msg.mediaObject = textObj;        msg.description = text;        SendMessageToWX.Req req = new SendMessageToWX.Req();        req.transaction = "txt" + String.valueOf(System.currentTimeMillis());//transaction用于唯一标识一个请求        req.message = msg;        // SendMessageToWX.Req.WXSceneSession 发送至微信的会话中        // SendMessageToWX.Req.WXSceneTimeLINE 发送至朋友圈        req.scene = SendMessageToWX.Req.WXSceneTimeline;        api.sendReq(req);    }    /**     * 发图片到微信     * @param bitmap     */    public void sendBitmap(Bitmap bitmap){        WXImageObject imgObj = new WXImageObject(bitmap);        WXMediaMessage msg = new WXMediaMessage();        msg.mediaObject = imgObj;        Bitmap thumbBmp = Bitmap.createScaledBitmap(bitmap, THUMB_SIZE, THUMB_SIZE, true);        bitmap.recycle();        msg.thumbData = Util.bmpToByteArray(thumbBmp, true);        SendMessageToWX.Req req = new SendMessageToWX.Req();        req.transaction = "img"+String.valueOf(System.currentTimeMillis());        req.message = msg;        req.scene = SendMessageToWX.Req.WXSceneTimeline;        api.sendReq(req);    }}

Util.java

import android.graphics.Bitmap;import java.io.ByteArrayOutputStream;/** * 工具类 */public class Util {    /**     * 将bmp转换为字节数组     * @param bmp     * @param needRecycle     * @return     */    public static byte[] bmpToByteArray(final Bitmap bmp, boolean needRecycle) {        ByteArrayOutputStream output = new ByteArrayOutputStream();        bmp.compress(Bitmap.CompressFormat.PNG, 100, output);        if (needRecycle) {            bmp.recycle();        }        byte[] result = output.toByteArray();        try {            output.close();        } catch (Exception e) {            e.printStackTrace();        }        return result;    }}

MainActivity.java

// 发送文本WeixinUtil.getInstance(MainActivity.this).sendText(text);// 发送图片WeixinUtil.getInstance(MainActivity.this).sendBitmap(bitmap);

问题

有可能会碰到如下的问题:

第一次可以分享,之后就无法调出分享界面。

这不是程序问题,而是未审核通过。

参考:http://blog.csdn.net/qianfu111/article/details/9115303

更多相关文章

  1. linux下android的开发正确识别真机调试
  2. Android(安卓)| 如何给Fragment里的button添加监听事件
  3. 【Android高级工程师】Android项目开发如何设计整体架构?
  4. Android中利用LinearLayout动态添加控件
  5. Android开发学习之WallPaper设置壁纸详细介绍与实例
  6. (二)Android系统基础-1 APP类型简介
  7. Android功能快速上线神器!
  8. Android应用集成开发环境,强烈推荐使用
  9. Android(安卓)EditText 下换线颜色变换

随机推荐

  1. MySQL 的 21 个规范、优化最佳实践!
  2. MySQL中的binary类型使用操作
  3. 实例讲解MySQL 慢查询
  4. MySQL找出未提交事务的SQL实例浅析
  5. 开启MySQL远程连接的方法
  6. MySQL如何插入Emoji表情
  7. MySQL压力测试工具Mysqlslap的使用
  8. MySQL SQL优化教程之in和range查询
  9. SQL优化教程之in与range查询
  10. MySQL锁阻塞的深入分析