一、微信分享SDK介绍
注:本文为微信Android终端开发工具的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉IDE的基本使用方法(本文以Eclipse为例),以及具有一定的编程知识基础等。
1.申请你的AppID
请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。
2.下载微信终端开发工具包 开发工具包主要包含3部分内容:(其中,只有libammsdk.jar是必须的) - libammsdk.jar(每个第三方应用必须要导入该sdk库,用于实现与微信的通信) - API文档(供开发者查阅使用) - 界面小工具源码(封装了界面表现的工具类,以及一些界面风格)
请前往“资源下载页”下载最新SDK包
3. 把下载下来的libmammsdk.jar直接拖入到安卓根目录的libs文件夹内
二、操作步骤
1. 配置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"/>
2. 注册到微信
要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。
IWXAPI api = WXAPIFactory.createWXAPI(this,WXEntryActivity.APP_ID);
api.registerApp(WXEntryActivity.APP_ID);
api.handleIntent(getIntent(),this);
3. 发送图片
在这之前,由于微信4.2以下版本不支持发送到朋友圈,所以有个检测是否能否发送到朋友圈的方法
private static boolean checkCanSendToFriend(IWXAPI api){
int wxSdkVersion = api.getWXAppSupportAPI();
if (wxSdkVersion >= TIMELINE_SUPPORTED_VERSION) {
return true;
} else {
return false;
}
}
另外一个微信自带的生成唯一标识函数
private static String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}
//api:IWXAPI的一个实例,已注册到app,mode:发送模式(0为聊天,1为发到朋友圈),smallPng:(缩略图绝对路径),bigPng(大图绝对路径)
public static void sendImageWithAPI(IWXAPI api,int mode,String smallPng,String bigPng){
Log.i("wc","smallPng:" + smallPng + " bigPng:" + bigPng);
Bitmap bmpSmall = BitmapFactory.decodeFile(smallPng);
Bitmap bmpBig = BitmapFactory.decodeFile(bigPng);
if(bmpSmall == null){
Log.i("wc","bmp is null");
//Toast.makeText(activity,"image path not find,path:" + smallPng,Toast.LENGTH_LONG).show();
return;
}
if(bmpBig == null){
Log.i("wc",path:" + bigPng,Toast.LENGTH_LONG).show();
return;
}
WXImageObject imgObj = new WXImageObject(bmpBig);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj;
msg.thumbData = Util.bmpToByteArray(bmpSmall,true); // 设置缩略图
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("img");
req.message = msg;
//聊天
if(mode == 0){
req.scene = SendMessageToWX.Req.WXSceneSession;
}
//朋友圈
else if((mode == 1) && (checkCanSendToFriend(api)))
{
req.scene = SendMessageToWX.Req.WXSceneTimeline;
}
else{
req.scene = SendMessageToWX.Req.WXSceneSession;
}
api.sendReq(req);
Log.i("wc","send img ok");
}
4. 发送图片链接
//api:IWXAPI的实例,png:图片路径,title:标题,desc:描述,url:链接地址,mode:模式(0聊天1朋友圈)
public static void sendURLWithAPI(IWXAPI api,String png,String title,String
desc,String url,int mode)
{
Bitmap bmp = BitmapFactory.decodeFile(png);
if(bmp == null){
//Toast.makeText(activity,path:" + png,Toast.LENGTH_LONG).show();
return;
}
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = url;
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = title;
msg.description = desc;
Bitmap thumb = bmp;
msg.thumbData = Util.bmpToByteArray(thumb,true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message = msg;
//聊天
if(mode == 0){
req.scene = SendMessageToWX.Req.WXSceneSession;
}
//朋友圈
else if((mode == 1) && (checkCanSendToFriend(api)))
{
req.scene = SendMessageToWX.Req.WXSceneTimeline;
}
else{
req.scene = SendMessageToWX.Req.WXSceneSession;
}
api.sendReq(req);
}
至此,所有关键要素都已经说明,如果需要原码,请点击查看http://www.52php.cn/article/p-kngrlkpy-bdv.html (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|