转于:http://blog.csdn.net/freesonhp/article/details/10296141

------------------------------------------------------------------------------------------

随着微信越来越火,越来越多的应用要求有分享到微信的功能。虽然有很多平台都帮集成有分享功能,比如友盟。但是个人觉得友盟集成的东西太多了,自己封装得太过分了,很多资源文件也要带进去,所以感觉不是怎么好,所以自己也研究了一下微信的调用其SDK分享。下面说说步骤。

第一:下载官方的sdk demo。

下载地址:http://open.weixin.qq.com/download/?lang=zh_CN

第二:解压,并将工程导入到eclipse

解压出来的时候,发现根目录下有一个debug.keystore文件,这个文件很关键的哦。

然后我们运行看看,你会发现分享根本就不成功,是微信原因吗,当然不是。

第三:在上面说到项目的根目录下有一个debug.keystore文件,因为我们编译、签名apk的时候,用的是我们自带的那个debug.keystore,每台电脑都是不一样的签名文件,而且微信那个APP_ID已经签名文件debug.keystore绑定了的,所以为什么我们直接运行时候是不成功的。

解决方法就是将微信的那个debug.keystore拷贝到我们电脑默认的那个debug.keystore位置,将其覆盖(建议先备份)。

在window系统,这个签名文件在c:\用户\你的用户名\.android目录下(注意.android文件夹默认是隐藏的)。

再次运行,分享就成功了。

如果是我们的应用,将APP_ID替换成我们在官网上面申请的APP_ID就行了。

其实我们分享信息到微信,还有一种更简单的方法,不用其提供的SDK API,直接调用微信相关的Activity,这样更加省事,例如:

[java] view plain copy
  1. /**
  2. *分享信息到朋友
  3. *
  4. *@paramfile,假如图片的路径为path,那么file=newFile(path);
  5. */
  6. privatevoidshareToFriend(Filefile){
  7. Intentintent=newIntent();
  8. ComponentNamecomponentName=newComponentName("com.tencent.mm","com.tencent.mm.ui.tools.ShareImgUI");
  9. intent.setComponent(componentName);
  10. intent.setAction(Intent.ACTION_SEND);
  11. intent.setType("image/*");
  12. intent.putExtra(Intent.EXTRA_TEXT,"测试微信");
  13. intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
  14. startActivity(intent);
  15. }
[java] view plain copy
  1. /**
  2. *分享信息到朋友圈
  3. *
  4. *@paramfile,假如图片的路径为path,那么file=newFile(path);
  5. */
  6. privatevoidshareToTimeLine(Filefile){
  7. Intentintent=newIntent();
  8. ComponentNamecomponentName=newComponentName("com.tencent.mm","com.tencent.mm.ui.tools.ShareToTimeLineUI");
  9. intent.setComponent(componentName);
  10. intent.setAction(Intent.ACTION_SEND);
  11. intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
  12. //intent.setAction(android.content.Intent.ACTION_SEND_MULTIPLE);
  13. //ArrayList<Uri>uris=newArrayList<Uri>();
  14. //for(inti=0;i<images.size();i++){
  15. //Uridata=Uri.fromFile(newFile(thumbPaths.get(i)));
  16. //uris.add(data);
  17. //}
  18. //intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,uris);
  19. intent.setType("image/*");
  20. startActivity(intent);
  21. }

更多相关文章

  1. avd 配置
  2. 来电防火墙——学习记录
  3. android adb logcat打印内核调试信息
  4. 项目中平时遇到的小知识点集锦
  5. XML解析
  6. 【Android】实现非root的 Traceroute -- 非Root权限下移植可执行
  7. Android可执行文件
  8. android 百度sdk之 百度定位
  9. 反编译Android部署程序

随机推荐

  1. Android(安卓)java.lang.NoClassDefFound
  2. 11、从头学Android之Android布局管理:Line
  3. ListView 使用技巧
  4. Android(安卓)WiFi Direct文件传输
  5. Intent(意图)
  6. 转:关于android中图片裁剪以及PorterDuffX
  7. Android应用程序组件Content Provider应
  8. Android原生(Native)C开发之三 鼠标事件
  9. Android防止崩溃的库,有效的降低Crash率
  10. Android高手进阶教程(十)之----Android(