首先参考的是官方的教程和Dome :https://open./cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN
下载demo 将微信SDK libammsdk.jar 加入到工程中
1. 主要的代码文件:
package net.sourceforge.simcpux;
import android.content.Context;
import com.tencent.mm.sdk.openapi.*;
/**
* Created by Administrator on /6/19.
*/
public class WeiXinUtil {
private Context mContext;
public static final String APP_ID = "wxd930ea5d5a258f4f";
public WeiXinUtil(Context context) {
this.mContext = context;
}
// IWXAPI 是第三方app和微信通信的openapi接口
private IWXAPI api;
public void sendMessageToWX(String sendMessage) {
regToWx();
if (api == null || sendMessage == null || sendMessage.length() == 0) {
return;
}
// 初始化一个WXTextObject对象
WXTextObject textObj = new WXTextObject();
textObj.text = sendMessage;
// 用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage(textObj);
msg.mediaObject = textObj;
// 发送文本类型的消息时,title字段不起作用
msg.description = sendMessage;
// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneTimeline; // 分享至朋友圈
//req.scene = SendMessageToWX.Req.WXSceneSession; // 发送给好友
api.sendReq(req);
}
/**
* 将app 注册到微信
*/
private void regToWx() {
// 通过WXAPIFactory工厂,获取IWXAPI的实例
api = WXAPIFactory.createWXAPI(mContext, APP_ID, false);
// 将该app注册到微信
api.registerApp(APP_ID);
}
}
简单的分享至朋友圈和朋友的工具类就写好了,只要调用sendMessageToWX方法就行了。
2. 简单的调用此工具类
2.1 main.xml 文件<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="send"
/>
</LinearLayout>
2.2WXEntryActivity.java 文件代码
package net.sourceforge.simcpux;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class WXEntryActivity extends Activity {
private Button sendBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sendBtn = (Button) findViewById(R.id.button);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = "send message";
new WeiXinUtil(WXEntryActivity.this).sendMessageToWX(text);
}
});
}
}
到了这里你运行后可能会有一个异常, 无法进入微信界面,微信发送被拒绝。原因是在微信开发平台6.0之后,签名问题导致的。因为我是直接运行的包,所以用的是debug签名。
3. 问题解决办法:
使用微信SDK Sample Demo源码中的APP_ID ="wxd930ea5d5a258f4f" 同时使用微信SDK Sample Demo源码中的debug.keystore 。加入debug.keystore步骤如下: 1. 在 Custom debug keystone 中选择微信SDK Sample Demo源码中的debug.keystore 。加入我的Dome中的keystore也是一样的。我用的是intellij idea: 如下图所示:在project structure -> facets -> 你的工程 -> packaging ->Custom debug keystone
eclipse 的话在WIndows -> Preferences -> android -> build ->Custom debug keystone
到此问题解决。 最后可以看到分享成功
结束,其他的分享完全可以按照官方的Demo来写。如有什么问题欢迎找茬!
签名问题参考文档:/forum.php?mod=viewthread&tid=7768&extra=page%3d1%26filter%3dtypeid%26typeid%3d12%26digest%3d1%26specialtype%3dreward
代码下载地址:点击打开链接