Android 微信分享
2015-11-30 23:32
756 查看
Android微信分享
准备工作
微信示例程序
使用微信SDK部署自己的第三方应用
调不出分享界面
解决办法
分享图片没有响应
具体表现
解决办法
附录
MainActivityjava
activity_mainxml
应用名
包名
应用图标(两种分辨率)
应用网站
总体来说,注册过程比较麻烦,还需要审核什么的。
最终获取
按照第三方应用调用微信SDK的流程,首先需要将应用注册,然后再实现分享文字,图片等功能。但是部署后点击分享死活掉不出微信分享的界面,或者说闪一下又返回————分享不成功。
最终解决办法:
在Eclipse的上方工具栏选择 Window->Preference->Android->Build
进入如下界面:
![](http://img.blog.csdn.net/20151201092951380)
如图所示修改debug.keystore的路径,这里我们找到该示例项目的绝对路径即可,例如我的是:
F:\Android\workspace\amm_sdk_sample\debug.keystore
而对于C:\Users\hp.android\debug.keystore,这是我们自己的签名,在之后编写自己的第三方应用时会用到。
再次将应用部署到手机上,就可以实现各个功能了。
具体流程可以参照
这里我就说说我遇到的两个问题:
获取程序签名的工具:http://open.weixin.qq.com/download/sdk/gen_signature.apk
运行这个gen_sinature输入自己的包名,这次会生成一个新的应用签名,去微信开放平台的后台用这个签名替换之前的。
至此再次运行第三方应用,问题解决。
准备工作
微信示例程序
使用微信SDK部署自己的第三方应用
调不出分享界面
解决办法
分享图片没有响应
具体表现
解决办法
附录
MainActivityjava
activity_mainxml
Android微信分享
通过使用微信SDK,在第三方应用中加入分享到朋友圈功能(图片、文字)。准备工作
注册成为微信开放平台的开发者,申请自己的应用需要以下几点:应用名
包名
应用图标(两种分辨率)
应用网站
总体来说,注册过程比较麻烦,还需要审核什么的。
最终获取
AppId和
AppSecret,这两个东西非常重要,不过暂时对我们来说用不着。
微信示例程序
事实上这就是微信开放平台官网给的第三方应用,网上下载这个源码后导入到Eclipse工程中,就可以直接部署到手机上,应用名叫做Wechat SDK Demo22。但是这里出现了一点小插曲:
按照第三方应用调用微信SDK的流程,首先需要将应用注册,然后再实现分享文字,图片等功能。但是部署后点击分享死活掉不出微信分享的界面,或者说闪一下又返回————分享不成功。
最终解决办法:
在Eclipse的上方工具栏选择 Window->Preference->Android->Build
进入如下界面:
如图所示修改debug.keystore的路径,这里我们找到该示例项目的绝对路径即可,例如我的是:
F:\Android\workspace\amm_sdk_sample\debug.keystore
而对于C:\Users\hp.android\debug.keystore,这是我们自己的签名,在之后编写自己的第三方应用时会用到。
再次将应用部署到手机上,就可以实现各个功能了。
使用微信SDK部署自己的第三方应用
首先我们按照自己填写的包名创建Android项目,编写相应的代码。以我的示例来说:定义两个Button,一个Button用来注册我的应用,另一个Button用来分享本地SD上的图片到朋友圈。具体流程可以参照
Wechat SDK Demo22,我也会在后面给出我自己的测试代码。
这里我就说说我遇到的两个问题:
调不出分享界面
解决办法:
这里首先按照上述提到的方法修改debug.keystore为自己的签名C:\Users\hp.android\debug.keystore,将应用部署到手机上。获取程序签名的工具:http://open.weixin.qq.com/download/sdk/gen_signature.apk
运行这个gen_sinature输入自己的包名,这次会生成一个新的应用签名,去微信开放平台的后台用这个签名替换之前的。
至此再次运行第三方应用,问题解决。
分享图片没有响应
具体表现
点击分享图片后,程序正常执行,LogCat也没有报出任何错误,但是程序也没有任何响应,分享失败。解决办法
WXMediaMessage msg = new WXMediaMessage();这个对象有个成员变量
thumbData表示分享图片的缩略图,这个缩略图的大小必须小于32Kb,在
extractThumbnail()方法中修改THUMB_SIZE后就可以了。
附录
MainActivity.java
[code]public class MainActivity extends Activity { private IWXAPI api; private static final int THUMB_SIZE = 100; private static final String SDCARD_ROOT = Environment .getExternalStorageDirectory().getAbsolutePath(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); api = WXAPIFactory.createWXAPI(getApplicationContext(), "your AppID", true); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void RegisterToWeChat(View v) { api.registerApp("your AppId"); } public void ShareToWeChat(View v) { String text = "test share"; String path = SDCARD_ROOT + "/Desert.png"; File file = new File(path); if (!file.exists()) { Toast.makeText(getApplicationContext(),"找不到文件"+" path = " + path, Toast.LENGTH_LONG).show(); //break; } WXImageObject imgObj = new WXImageObject(); imgObj.setImagePath(path); WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj; msg.title="title"; msg.description="description"; Bitmap bmp = BitmapFactory.decodeFile(path); Bitmap thumbBmp=ThumbnailUtils.extractThumbnail(bmp, THUMB_SIZE, THUMB_SIZE); bmp.recycle(); msg.thumbData = Util.bmpToByteArray(thumbBmp, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("img"); req.message = msg; req.scene =SendMessageToWX.Req.WXSceneTimeline;//朋友圈 api.sendReq(req); // finish(); // 发送文字 // 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 = String.valueOf(System.currentTimeMillis()); // //req.scene = SendMessageToWX.Req.WXSceneTimeline; // req.message = msg; // api.sendReq(req); } private Bitmap extractThumbnail(Bitmap bmp, int thumbSize, int thumbSize2) { // TODO Auto-generated method stub return null; } private String buildTransaction(final String type) { return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis(); }
activity_main.xml
[code]<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" tools:context=".MainActivity" > <Button android:id="@+id/btnRegister" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/register" android:onClick="RegisterToWeChat"/> <Button android:id="@+id/btnShare" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/share" android:onClick="ShareToWeChat"/> </LinearLayout>
相关文章推荐
- 仿UC天气下拉和微信下拉眼睛头部淡入淡出--第三方开源--PullLayout
- 微信开发数据收发原理及消息数据格式
- iOS 集成微信支付【转载】
- 以蓝牙开发的视觉解读微信Airsync协议
- 微信支付本地调试
- Android应用加入微信分享
- 微信JS-SDK说明文档 能调用微信扫一扫 ,那能不能让浏览器支持微信支付呢
- 微信公众号与HTML 5混合模式揭秘5——JSSDK开发技巧1
- 微信公众号与HTML 5混合模式揭秘5——JSSDK开发技巧1
- 微信公众开发基础
- android微信支付(问题总结)
- 使用外观模式(Facade)调用微信企业号API
- 关于游戏中的分享之ShareSDK的研究续一
- 微信企业号如何置顶?
- 基于js实现微信发送好友如何分享到朋友圈、微博
- 微信公众号支付
- PHP 微信支付类 demo
- 练手小程序(三)
- 仿微信头像图片裁剪并压缩到100K以下到本地
- PHP 微信支付类 demo