基本信息
源码名称:微信 android API 开发范例 附完整源码下载
源码大小:0.26M
文件格式:.zip
开发语言:Java
更新时间:2013-08-22
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
微信api android客户端例子源码
微信api android客户端例子源码
package net.sourceforge.simcpux; import java.io.File; import java.net.URL; import net.sourceforge.simcpux.R; import net.sourceforge.simcpux.uikit.CameraUtil; import net.sourceforge.simcpux.uikit.MMAlert; import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Toast; import com.tencent.mm.sdk.openapi.IWXAPI; import com.tencent.mm.sdk.openapi.SendMessageToWX; import com.tencent.mm.sdk.openapi.WXAPIFactory; import com.tencent.mm.sdk.openapi.WXAppExtendObject; import com.tencent.mm.sdk.openapi.WXEmojiObject; import com.tencent.mm.sdk.openapi.WXImageObject; import com.tencent.mm.sdk.openapi.WXMediaMessage; import com.tencent.mm.sdk.openapi.WXMusicObject; import com.tencent.mm.sdk.openapi.WXTextObject; import com.tencent.mm.sdk.openapi.WXVideoObject; import com.tencent.mm.sdk.openapi.WXWebpageObject; import com.tencent.mm.sdk.openapi.SendAuth; public class SendToWXActivity extends Activity { private static final int THUMB_SIZE = 150; private static final String SDCARD_ROOT = Environment.getExternalStorageDirectory().getAbsolutePath(); private IWXAPI api; private static final int MMAlertSelect1 = 0; private static final int MMAlertSelect2 = 1; private static final int MMAlertSelect3 = 2; private CheckBox isTimelineCb; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, Constants.APP_ID); setContentView(R.layout.send_to_wx); initView(); } private void initView() { isTimelineCb = (CheckBox) findViewById(R.id.is_timeline_cb); isTimelineCb.setChecked(false); // send to weixin findViewById(R.id.send_text).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final EditText editor = new EditText(SendToWXActivity.this); editor.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); editor.setText(R.string.send_text_default); MMAlert.showAlert(SendToWXActivity.this, "send text", editor, getString(R.string.app_share), getString(R.string.app_cancel), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String text = editor.getText().toString(); if (text == null || text.length() == 0) { return; } // 初始化一个WXTextObject对象 WXTextObject textObj = new WXTextObject(); textObj.text = text; // 用WXTextObject对象初始化一个WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = textObj; // 发送文本类型的消息时,title字段不起作用 // msg.title = "Will be ignored"; msg.description = text; // 构造一个Req SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求 req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 调用api接口发送数据到微信 api.sendReq(req); finish(); } }, null); } }); findViewById(R.id.send_img).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_img), SendToWXActivity.this.getResources().getStringArray(R.array.send_img_item), null, new MMAlert.OnAlertSelectId(){ @Override public void onClick(int whichButton) { switch(whichButton){ case MMAlertSelect1: { Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img); 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 = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } case MMAlertSelect2: { String path = SDCARD_ROOT "/test.png"; File file = new File(path); if (!file.exists()) { String tip = SendToWXActivity.this.getString(R.string.send_img_file_not_exist); Toast.makeText(SendToWXActivity.this, tip " path = " path, Toast.LENGTH_LONG).show(); break; } WXImageObject imgObj = new WXImageObject(); imgObj.setImagePath(path); WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj; Bitmap bmp = BitmapFactory.decodeFile(path); 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 = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } case MMAlertSelect3: { String url = "http://weixin.qq.com/zh_CN/htmledition/images/weixin/weixin_logo0d1938.png"; try{ WXImageObject imgObj = new WXImageObject(); imgObj.imageUrl = url; WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj; Bitmap bmp = BitmapFactory.decodeStream(new URL(url).openStream()); 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 = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); } catch(Exception e) { e.printStackTrace(); } break; } default: break; } } }); } }); findViewById(R.id.send_music).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_music), SendToWXActivity.this.getResources().getStringArray(R.array.send_music_item), null, new MMAlert.OnAlertSelectId(){ @Override public void onClick(int whichButton) { switch(whichButton){ case MMAlertSelect1: { WXMusicObject music = new WXMusicObject(); //music.musicUrl = "http://www.baidu.com"; music.musicUrl="http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3"; //music.musicUrl="http://120.196.211.49/XlFNM14sois/AKVPrOJ9CBnIN556OrWEuGhZvlDF02p5zIXwrZqLUTti4o6MOJ4g7C6FPXmtlh6vPtgbKQ==/31353278.mp3"; WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = music; msg.title = "Music Title Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long"; msg.description = "Music Album Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long"; Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("music"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } case MMAlertSelect2: { WXMusicObject music = new WXMusicObject(); music.musicLowBandUrl = "http://www.qq.com"; WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = music; msg.title = "Music Title"; msg.description = "Music Album"; Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("music"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } default: break; } } }); } }); findViewById(R.id.send_video).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_video), SendToWXActivity.this.getResources().getStringArray(R.array.send_video_item), null, new MMAlert.OnAlertSelectId(){ @Override public void onClick(int whichButton) { switch(whichButton){ case MMAlertSelect1: { WXVideoObject video = new WXVideoObject(); video.videoUrl = "http://www.baidu.com"; WXMediaMessage msg = new WXMediaMessage(video); msg.title = "Video Title Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long"; msg.description = "Video Description Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long"; Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("video"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } case MMAlertSelect2: { WXVideoObject video = new WXVideoObject(); video.videoLowBandUrl = "http://www.qq.com"; WXMediaMessage msg = new WXMediaMessage(video); msg.title = "Video Title"; msg.description = "Video Description"; SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("video"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } default: break; } } }); } }); findViewById(R.id.send_webpage).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_webpage), SendToWXActivity.this.getResources().getStringArray(R.array.send_webpage_item), null, new MMAlert.OnAlertSelectId(){ @Override public void onClick(int whichButton) { switch(whichButton){ case MMAlertSelect1: WXWebpageObject webpage = new WXWebpageObject(); webpage.webpageUrl = "http://www.baidu.com"; WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = "WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long"; msg.description = "WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description Very Long Very Long Very Long Very Long Very Long Very Long Very Long"; Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("webpage"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; default: break; } } }); } }); findViewById(R.id.send_appdata).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_appdata), SendToWXActivity.this.getResources().getStringArray(R.array.send_appdata_item), null, new MMAlert.OnAlertSelectId(){ @Override public void onClick(int whichButton) { switch(whichButton){ case MMAlertSelect1: final String dir = SDCARD_ROOT "/tencent/"; File file = new File(dir); if (!file.exists()) { file.mkdirs(); } CameraUtil.takePhoto(SendToWXActivity.this, dir, "send_appdata", 0x101); break; case MMAlertSelect2: { final WXAppExtendObject appdata = new WXAppExtendObject(); final String path = SDCARD_ROOT "/test.png"; appdata.fileData = Util.readFromFile(path, 0, -1); appdata.extInfo = "this is ext info"; final WXMediaMessage msg = new WXMediaMessage(); msg.setThumbImage(Util.extractThumbNail(path, 150, 150, true)); msg.title = "this is title"; msg.description = "this is description sjgksgj sklgjl sjgsgskl gslgj sklgj sjglsjgs kl gjksss ssssssss sjskgs kgjsj jskgjs kjgk sgjsk Very Long Very Long Very Long Very Longgj skjgks kgsk lgskg jslgj"; msg.mediaObject = appdata; SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("appdata"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } case MMAlertSelect3: { // send appdata with no attachment final WXAppExtendObject appdata = new WXAppExtendObject(); appdata.extInfo = "this is ext info"; final WXMediaMessage msg = new WXMediaMessage(); msg.title = "this is title"; msg.description = "this is description"; msg.mediaObject = appdata; SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("appdata"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } default: break; } } }); } }); findViewById(R.id.send_emoji).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_emoji), SendToWXActivity.this.getResources().getStringArray(R.array.send_emoji_item), null, new MMAlert.OnAlertSelectId(){ @Override public void onClick(int whichButton) { final String EMOJI_FILE_PATH = SDCARD_ROOT "/emoji.gif"; final String EMOJI_FILE_THUMB_PATH = SDCARD_ROOT "/emojithumb.jpg"; switch(whichButton){ case MMAlertSelect1: { WXEmojiObject emoji = new WXEmojiObject(); emoji.emojiPath = EMOJI_FILE_PATH; WXMediaMessage msg = new WXMediaMessage(emoji); msg.title = "Emoji Title"; msg.description = "Emoji Description"; msg.thumbData = Util.readFromFile(EMOJI_FILE_THUMB_PATH, 0, (int) new File(EMOJI_FILE_THUMB_PATH).length()); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("emoji"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } case MMAlertSelect2: { WXEmojiObject emoji = new WXEmojiObject(); emoji.emojiData = Util.readFromFile(EMOJI_FILE_PATH, 0, (int) new File(EMOJI_FILE_PATH).length()); WXMediaMessage msg = new WXMediaMessage(emoji); msg.title = "Emoji Title"; msg.description = "Emoji Description"; msg.thumbData = Util.readFromFile(EMOJI_FILE_THUMB_PATH, 0, (int) new File(EMOJI_FILE_THUMB_PATH).length()); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("emoji"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } default: break; } } }); } }); // get token findViewById(R.id.get_token).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // send oauth request final SendAuth.Req req = new SendAuth.Req(); req.scope = "post_timeline"; req.state = "none"; api.sendReq(req); finish(); } }); // unregister from weixin findViewById(R.id.unregister).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { api.unregisterApp(); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 0x101: { final WXAppExtendObject appdata = new WXAppExtendObject(); final String path = CameraUtil.getResultPhotoPath(this, data, SDCARD_ROOT "/tencent/"); appdata.filePath = path; appdata.extInfo = "this is ext info"; final WXMediaMessage msg = new WXMediaMessage(); msg.setThumbImage(Util.extractThumbNail(path, 150, 150, true)); msg.title = "this is title"; msg.description = "this is description"; msg.mediaObject = appdata; SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("appdata"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); finish(); break; } default: break; } } private String buildTransaction(final String type) { return (type == null) ? String.valueOf(System.currentTimeMillis()) : type System.currentTimeMillis(); } }