1.重要的事情首先说!

包名、应用签名、app id 三者都必须和在腾讯上申请的一致!!!否则将不能成功。

包名:就是在腾讯上申请的包名

应用签名:使用微信官网提供的《签名生成工具》(这个工具是一个apk安装包)安装到手机上获取包的签名(先将你的程序安装到手机上,再安装签名生成工具,在工具上输入你程序包名就可以获得)

app id:微信申请后可获得

2.使用默认值创建一个android项目(包名必须为在腾讯申请的包名!!!)

3.在默认界面上增加一个Button按钮,方便模拟登陆发起

3.新增一个Constans.java文件用于记录全局的常量,结构如下(其中com.yiyou.game.d...r就是在微信上申请的包名)

①Constants.java中的内容如下:

public class Constants {public static final String APP_ID = "wxxxxxxx"; //替换为申请到的app idpublic static IWXAPI wx_api; //全局的微信api对象
}

②MainActivity.java中的内容如下:

public class MainActivity extends Activity {    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建微信api并注册到微信Constants.wx_api = WXAPIFactory.createWXAPI(MainActivity.this, Constants.APP_ID, true);Constants.wx_api.registerApp(Constants.APP_ID);Button btn = (Button)findViewById(R.id.button1);//得到按钮    btn.setOnClickListener(new OnClickListener() { //注册按钮点击事件
            @Overridepublic void onClick(View v) {                   //发起登录请求final SendAuth.Req req = new SendAuth.Req();req.scope = "snsapi_userinfo";req.state = "wechat_sdk_demo_test";Constants.wx_api.sendReq(req);                           }               });}
}

③这时候就可以发起微信登录了,但是要得到微信的返回结果,还需要下面的步骤

4.获得微信调用的反馈

①在包名下新增wxapi文件夹(这个文件夹名字是微信官方规定的,必须一致)

②在wxapi文件夹下新增继承于Activity并实现IWXAPIEventHandler接口的WXEntryActivity类(这个类名是微信官方规定的,必须一致)

③在eclipse中显示结构如下:

④WXEntryActivity.java文件代码如下:

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);        Constants.wx_api.handleIntent(getIntent(), this);}//微信请求相应
    @Overridepublic void onReq(BaseReq baseReq) {}//发送到微信请求的响应结果
    @Overridepublic void onResp(BaseResp resp) {switch (resp.errCode) {case BaseResp.ErrCode.ERR_OK:Log.i("WXTest","onResp OK");if(resp instanceof SendAuth.Resp){SendAuth.Resp newResp = (SendAuth.Resp) resp;//获取微信传回的codeString code = newResp.code;Log.i("WXTest","onResp code = "+code);}break;case BaseResp.ErrCode.ERR_USER_CANCEL:Log.i("WXTest","onResp ERR_USER_CANCEL ");//发送取消break;case BaseResp.ErrCode.ERR_AUTH_DENIED:Log.i("WXTest","onResp ERR_AUTH_DENIED");//发送被拒绝break;default:Log.i("WXTest","onResp default errCode " + resp.errCode);//发送返回break;}finish();}
}

5.在AndroidManifest.xml中对WXEntryActivity进行配置

①增加权限

    <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"/>  

②增加WXEntryActivity的配置

        <activityandroid:exported="true"android:name=".wxapi.WXEntryActivity" android:launchMode="singleTop"android:theme="@android:style/Theme.NoDisplay"/>  

③总体情况如截图

6.编译生成运行,即可发起微信登录并得到微信返回。

如果还是不行,那么可能由以下问题引起:

1.app id是否正确?

2.包名是否和申请时填写的一致?

3.应用签名是否和申请时填写的一致?(可以用签名生成工具对比一下)通常可能发生的情况是,申请用的签名包,调试用的非签名包,这种情况很常见。

4.WXEntryActivity.java文件的位置是否正确

5.AndroidManifest.xml中的配置是否正确?

官方文档:《移动应用微信登录开发指南》

以上,发起微信授权登录部分完。

Android接入微信SDK之一:发起微信授权登录相关推荐

  1. 微信公众号开发之授权登录(前端vue篇)

    前序: 由于之前一直是后端直接调用微信授权后,拿到相关信息后再返回给我(就是以前的前后端不分离),所以对微信公众号开发的微信授权登录还一直处于懵逼情况,直到今天有一个项目需要前后端分离,要前端主动去获 ...

  2. 微信小程序发起用户授权

    第一步 先通过wx.getSetting()获取用户的当前设置,返回值中只会出现小程序已经向用户请求过的权限. 第二步 判断用户是否已经授权某项设置, 如果某项设置(如:scope.userLocat ...

  3. springboot微信sdk方式进行微信支付

    微信支付: 官方文档:https://pay.weixin.qq.com/wiki/doc/api/index.html 第三方SDK:https://github.com/Pay-Group/bes ...

  4. 微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...

    1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过 ...

  5. vue 项目如何引入微信sdk,使用微信接口

    写在前面: 做微信的网页基本上都要接入微信的sdk,我在做的时候,也颇费了一番功夫,然后就想记录一下,供自己日后翻阅,以及让有需要的朋友可以做一下参考,如果喜欢的可以点波赞,或者关注一下,希望可以帮到 ...

  6. 微信公众号发起微信支付 c#

    tenpay.dll: MD5Util.cs using System; using System.Collections.Generic; using System.Linq; using Syst ...

  7. url 微信公众号开发 配置失效_微信公众号开发之授权登录

    一.UnionId和openId 微信登录最重要的两个返回信息,一个是UnionId,一个是OpenId.两者之间有着必然的联系. UnionID机制的作用说明:如果开发者拥有多个移动应用.网站应用和 ...

  8. 基于Thinkphp5+EasyWeChat+fastadmin微信小程序授权登录获取手机号微信公众号网页---联合授权登录

    战前准备 1.使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~4.0 -vvv 或者在composer.json文件renq ...

  9. 微信公众号扫码授权登录思路

    引言 上学期研究了一下微信登录相关内容,也写了两三篇笔记,但是最后实际登录流程没有写,主要因为感觉功能完成有所欠缺,一直也没有好的思路:这两天我又看了看官方文档,重新构思了一下微信公众号登录相关的内容 ...

  10. 微信小程序 php 手机授权登录

    wxml <!--前台页面,通过判断决定展示登录还是信息--> <view wx:if="{{isHide}}"><view wx:if=" ...

最新文章

  1. ECUG 全球技术大会重回上海!
  2. Java存储过程调用CallableStatement
  3. python request-python-request-各方法使用及格式
  4. SAP Cloud for Customer的跳转链接制作navigation link
  5. arduino判断是否连接串口_Arduino-串口通信
  6. 用框架的你,可能早已忽略了这些事件API
  7. jspdf 分页_使用html2canvas跟jspdf导出导出PDF文件
  8. es对几十亿数据能达到秒级响应吗_十亿级数据,秒级响应 | 观远数据「极速分析引擎」这样实现...
  9. wap2app是什么
  10. 【Windows 10】U盘量产
  11. Timer 控件中的Elapsed事件与tick事件的区别
  12. python 三维栅状图_基于OpenGL的二维矢量地图可视化技术研究
  13. 《大数据处理技术Spark》--林子雨
  14. C/C++中关于交换(Swap)函数的三种方法
  15. 618来了云服务器商家疯了
  16. 怎么改变html无序列表的字号,html无序列表代码 html5 无序列表的行距怎么设置
  17. RDM1 软件需求与开发
  18. 事件监听的理解(ActionListener等)
  19. skynet框架应用 (十二) snax框架
  20. R语言绘图,分组添加拟合线,单独标注拟合函数和R2

热门文章

  1. 盘点互联网十大运营模式
  2. 英语句子成分分析(三)-- 主语+谓语+宾语 +宾语补足语
  3. 考研英语(三)——并列句
  4. Vue+Excharts画出重庆地图
  5. 对消息 的正文进行序列化时出错:“生成 XML 文档时出错。”
  6. c#经典俄罗斯方块 vs2012开发
  7. 服务器导入虚拟机,如何将VMware镜像导入VMware Player /服务器
  8. 武科大C语言历年试卷,2021武汉科技大学考研历年真题
  9. 新华三、浪潮云的政务云端竞技
  10. 诺奖得主联合创办新药物设计公司,开启GPCR下一个「黄金时代」