Android实现二维码扫描登录网页
之前写过一个二维码扫描demo,用的Zxing的框架,点击下载。兴许扫描二维码中出现一些问题,比方解决压缩图片。调整扫描窗体大小等等。
兴许单位要求做扫描登录实现,发现难点就是怎么知道你扫描的是这台电脑,后台必须获取到(后台技术的问题)然后把这个參数给我,再传递到后台,后台推断登录就可以。这样自己扫描后直接传递个參数就能够实现登录了。效果例如以下:
大概代码实现:扫描跳转:
//扫描登录a
case R.id.tv_more_qr:
if (PventQuickClick.isFastDoubleClick()) {
break;
}
DialogUtils.showCommonPopupWindow(context);
MyApplication.checkLogin(context, new APPCallback() { @Override
public void appCallback(String userid) {
// TODO Auto-generated method stub
DialogUtils.dismissCommonPopupWindow();
Intent openCameraIntent = new Intent(context,CaptureActivity.class);//Zing框架的类
startActivityForResult(openCameraIntent,0); }
}); break;
然后扫描后会返回扫描的结果在onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); if (resultCode == getActivity().RESULT_OK) {
Bundle bundle = data.getExtras();
String qrResult = bundle.getString("result");
LogUtils.log_e("qrResult", qrResult);
int scan= qrResult.indexOf("+");
//对切取字符串推断
//登录
if(scan>0){
String starts = qrResult.substring(0, scan);
String ends = qrResult.substring(scan+1, qrResult.length());
LogUtils.log_e("starts", starts+"......."+ends);
if(ends.equals("QrLogin")){
Intent intent = new Intent(context,QrLogin.class);//跳转到确认登录界面
intent.putExtra("scanResult", starts);
startActivity(intent);
}
}else if(StringUtils.getUrl(qrResult)){//是html的链接直接跳转浏览器,比方apk下载等等
Intent intent =new Intent();
intent.setAction("android.intent.action.VIEW");
Uri content_url =Uri.parse(qrResult);
intent.setData(content_url);
startActivity(intent);
}else if(!StringUtils.getUrl(qrResult)){
Toast.makeText(getActivity(), "客官,您扫的找不到呀! ! ", 0).show();
}
}
}
然后跳转到确认登录界面:点击推断传參:
@Override
protected void baseOnClick(View v) {
switch (v.getId()) {
case R.id.tv_qr_login:
// Toast.makeText(QrLogin.this, "登录", 0).show();
DialogUtils.showCommonPopupWindow(QrLogin.this);
LinkedHashMap<String, String> get_checkqrcodelogin = new LinkedHashMap<String, String>();
get_checkqrcodelogin.put("key", MyApplication.getUserState("loginkey"));// android 固定为1
get_checkqrcodelogin.put("sessionid", sessionid);// android 固定为1
HttpManager.GetCheckQrCodeLogin(get_checkqrcodelogin, new NetCallBack() { @Override
public void callback(String result) {
DialogUtils.dismissCommonPopupWindow();
LogUtils.log_e("GetCheckQrCodeLogin", result);
final CheckQrCodeLogin checkqrcode = JsonUtils.getBeanFromJson(
result, CheckQrCodeLogin.class);
if(checkqrcode.code.equals("1")){
Toast.makeText(QrLogin.this, "登录成功", 0).show();
finish();
} }
});
break;
这样就能够实现二维码扫描登录。二维码demo下载。解决扫描框大小和图片压缩问题
Android实现二维码扫描登录网页的更多相关文章
- php 实现 二维码 扫描登录
本人简单实现的示例,使用任意二维码工具打开二维码对应链接 http://www.54php.cn/demo1/scan 原理介绍: 第一步:访问登录页面,生成唯一key,例如MkhjDFL=,并且将此 ...
- Android—ZXing二维码扫描遇到的问题
最近工作中需要开发带有二维码扫描功能的软件(基于开源项目ZXing),遇到的问题记录一下,也希望给大家带来帮助. 1.首先因为扫描要开摄像机所以加权限是一定的,不然后面什么都不能进行 <uses ...
- Android集成二维码扫描功能
文章转载自 https://github.com/yipianfengye/android-zxingLibrary 在具体介绍该扫描库之前我们先看一下其具体的使用方式,看看是不是几行代码就可以集成 ...
- Android扫描二维码 实现 登录网页
工程代码:ScanQRcode.zip ------------------------------------------------------------------ 1. 扫描二维码登录的实现 ...
- android之二维码扫描的实现
二维码扫描引擎有 ZBar 和ZXing 一. 使用开源ZXing扫描的缺点 1.原始代码是横屏模式,尽管可以改成竖屏,但是扫描界面的自定义和多屏幕适配不好做 2.有效扫描区域不好控制,可能是我自己技 ...
- Android实现二维码扫描功能
1.效果预览 先上图展示效果(模拟器没有摄像头,录出来效果不好,将就看) 2.集成步骤 1.拷贝本项目demo中的com.google.zxing5个包引入到自己的项目中. 2.拷贝本项目demo中的 ...
- Android仿微信二维码扫描
转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...
- 实现手机扫描二维码页面登录,类似web微信-第四篇,服务器端
转自:http://blog.csdn.net/otangba/article/details/8273952 终于到了服务器端,第三篇的手机客户端如果已经下载了的话,没有服务器是不能正常运行的. 服 ...
- Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
Android 高手进阶(21) 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处:http://blog.csdn.net/xiaanming/article/detail ...
随机推荐
- 一次向svn中增加所有新增文件 svn add all new files【转】
以下摘自:<卓有成效的程序员>之自动化 转自:http://blog.csdn.net/spare_h/article/details/6677435 我经常会一次往Subversion里 ...
- 出现“error c4430缺少类型说明符-假定为int。注意C++不支持默认int
出现这种错误的原因,是因为函数没有写返回值.是在VC6.0的工程转为高版本(VS2010)的时候经常出现的; #include <stdio.h> main() { printf(&quo ...
- jsp页面点击打印按钮调用系统 的打印功能
<script language=javascript> function prt() { var btn_obj = document.getElementById("prin ...
- solr 启动过程分析
http://www.cnblogs.com/likehua/p/4353608.html#top
- JAVA 批量执行测试用例
如果多个测试用例在不同的类中,又需要一次性执行完所有的测试用例,则可以使用到Junit中的批量执行测试方法. 方法一 这种方式非常简单,不需要额外多写一行代码,Eclipse 本来就支持以项目或包为单 ...
- opencv3.0 legacy和nonfree丢失
根据官方http://docs.opencv.org/3.1.0/db/dfa/tutorial_transition_guide.html链接可以知道 legacy和nofree模块已经被删除了
- java 编码分析
三.源码分析: 更改字符串编码的步骤为: 1.调用String的getByte方法对字符串进行解码,得到字符串的字节数组(字节数组不携带任何有关编码格式的信息,只有字符才有编码格式) ...
- 二维树状数组+差分【p4514】上帝造题的七分钟
Description "第一分钟,X说,要有矩阵,于是便有了一个里面写满了\(0\)的\(n\times m\)矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为\((a,b)\),右 ...
- POJ 2115 C Looooops(Exgcd)
[题目链接] http://poj.org/problem?id=2115 [题目大意] 求for (variable = A; variable != B; variable += C)的循环次数, ...
- MySQL json 类型操作快速入门
MySQL 5.7.8开始支持 json类型. create table t(id int,js json,PRIMARY KEY (`id`)) 插入数据insert into t values(1 ...