http://blog.csdn.net/freesonhp/article/details/10756663

http://blog.csdn.net/freesonhp/article/details/10756663http://blog.csdn.net/freesonhp/article/details/10756663

http://blog.csdn.net/freesonhp/article/details/10756663

http://blog.csdn.net/freesonhp/article/details/10756663

http://blog.csdn.net/freesonhp/article/details/10756663

http://blog.csdn.net/freesonhp/article/details/10756663







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

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

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

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

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

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


Android 微信分享信息

分类:JavaAndroid 5631人阅读 评论(9) 收藏 举报 android 微信

随着微信越来越火,越来越多的应用要求有分享到微信的功能。虽然有很多平台都帮集成有分享功能,比如友盟。但是个人觉得友盟集成的东西太多了,自己封装得太过分了,很多资源文件也要带进去,所以感觉不是怎么好,所以自己也研究了一下微信的调用其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.setType("image/*");
  12. intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
  13. startActivity(intent);
  14. }









Android 微信SDK分享功能中的最全过程步骤分析

分类:Android 7867人阅读 评论(16) 收藏 举报

在前面有一章已经分析过怎么用官方的demo分享微信信息了,在这里我就不再多说,其中关于在自己应用分享说得很简单,本文作者也是经过一番折腾才弄成功,为了以后让大家都少走弯路,决定在这里从头到尾介绍怎么在自己的应用中分享功能

!!注意:顺序不能乱!!

1、建立自己的应用 TestShareWX

(1)应用包名是com.freeson.test,然后建立一个测试Activity,名字为TestActivity,里面有一个Button和EditText

(2)运行程序,请记住此时你编译运行的时候,用的是android默认的debug.keystore签名的。


2、到官网http://open.weixin.qq.com/download/?lang=zh_CN下载开发工具包,解压,将libammsdk.jar复制到libs中,并将其add到build path中。


3、到官网http://open.weixin.qq.com/agreement登记你的应用,

这里省去前面那些基本的操作 ,这里要注意以下的步骤。

其中有一步是要用个签微信那名的apk工具对我们程序进行签名的,因为我们的程序已经安装了,所以直接下载安装,然后在手机里面的那个框框输入包名(我这里是com.freeson.test,包名不能填错哦),点击生成按钮,这时候会生成一个md5值,将其输入到登记页面的框中(此时我们注意,如果我们的应用程序还没有安装到手机中的话,签名工具会提示没有找到相关包说明的,这时候我们有意识到什么了吗?)

再接下来输入包名(我这里是com.freeson.test,包名不能填错哦),然后提交审核。接下来就是等微信的MM进行审核了。


4、在步骤三中我们已经拿到了appid,按照sdk Demo里面的提供方法在我们的TestActivity测试,OK一切成功,是否有感觉成就感呢。


5、码农的日子还真TM难过啊,我加班码啊码啊,日子一天天过去,项目开发到最后了,经过测试,一切正常,用正式签名的文件对来正式打包。然后再测试。OH,my god,What Happened!!!,为什么刚刚还能分享微信的,现在点击居然没有反应了。顿时陷入惶恐中。。。。不要怕,我来告诉你为什么会这样。


6、其实在第一步的时候,就已经说了,我们在官网申请的AppId的时候填写应用程序签名也是就是用debug.keystore生成的。然而我们此时在手机里面运行的apk是用我们自己生成的签名(xxx.keystore)进行签名的,两个签名都不一致,所以很理所当然会导致分享失败。因为微信要对我们应用进行一个验证,就是通过这个签名来认证的。


7、别担心,还有补救的方法,用我们正式那个签名文件xxx.keystore对程序进行正式的打包,然后安装到手机中,然后再次运行微信那个签名apk工具,讲我们的包名输入到里面,重新生成一个MD5的签名,然后到官网http://open.weixin.qq.com/agreement,找到你之前等级那个应用,拉到最后,点击修改,将刚刚生成的那个签名输入到里面,然后保存重新提交审核。


8、做完上面的事情之后,所要做的就是等刚刚重新提交的修改通过审核,要不然你的微信就不能分享成功。


9、某一天,登记的那个应用通过审核了,运行我们打包的程序,点击微信,oh ,yes。发现能分享了,终于可以喘一口气了。


备注:

在弄分享过程中,本文作者也遇到了很多问题,在这里和大家说说,让大家以后稍微注意。

1、还是签名问题,一个项目,几个人完成的话,如果大家都是用各自默认的debug.keystore进行运行的话,在debug版本,微信分享功能肯定只有在申请的微信appid的那台机器生产的apk才能正常。

2、关于微信分享信息结果反馈,这个要注意的是以下两点,要不要肯定是不会收到分享反馈的。

(1)这个Activity的名字一定是WXEntryActivity

(2)WXEntryActivity这个类一定是建立在 应用包名+wxapi包下(比如上述的工程,这时候包名应该是com.freeson.test.wxapi)



写到这里,终于到结束了,本文作者也是折腾了蛮久才明白微信的认证原理的。一句话,理解签名很重要。





更多相关文章

  1. Android(安卓)中Service生命周期
  2. Android(安卓)gradle 命令行打包
  3. android添加超级管理权限
  4. Cocos2d-3.x Android环境搭建
  5. android 侧滑菜单DrawerLayout
  6. android 比较全的android 源码合集 + 企业级应用分享,从业的积累(
  7. android 比较全的android 源码合集 + 企业级应用分享,从业的积累(
  8. 北京android待遇 月薪过万秘籍分享
  9. 做自己的Android(安卓)ROM,屏蔽对framework中的系统APK的签名检查

随机推荐

  1. 《Android学习指南》目录
  2. Android 调用系统Email --多附件
  3. android ---spannableStringBuilder
  4. [置顶] Android API Guides – Introduct
  5. Android DatePickerDialog 只显示年月
  6. Android中Handler源码解析(一)
  7. Android Auido(2)- AudioTrack to AudioF
  8. android 开机启动程序
  9. Android(安卓)4.0.1_r1源代码发布,更新获
  10. Android全屏(包含3种隐藏顶部状态栏及标题