Android实现二维码扫描登录网页
2015-08-17 16:32
507 查看
之前写过一个二维码扫描demo,用的Zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等。后续单位要求做扫描登录实现,发现难点就是怎么知道你扫描的是这台电脑,后台必须获取到(后台技术的问题)然后把这个参数给我,再传递到后台,后台判断登录即可。这样自己扫描后直接传递个参数就可以实现登录了。效果如下:
大概代码实现:扫描跳转:
然后跳转到确认登录界面:点击判断传参:
这样就可以实现二维码扫描登录,二维码demo下载,解决扫描框大小和图片压缩问题
大概代码实现:扫描跳转:
//扫描登录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 升级数据库的最佳写法
- Android采用ListView实现数据列表显示
- Android实现图片切分与拼合
- Android DragAndDrop API 拖拽效果 交换ListView的Item值
- 4种必须知道的Android屏幕自适应解决方案
- Android数据加载和Json解析——蓝本
- Android Studio 使用 Gradle 打包 Jar
- 自己动手做Android音乐播放器
- Android中style在布局文件中的应用
- android---仿oppo简单计算器
- 基于C/S模式的android手机与PC机通信系统的开发
- android出现段错误时的查找定位的方法
- Android 一步步教你从ActionBar迁移到ToolBar
- Android中的线程池与任务队列
- android 剪切图片
- Android API指南(二)自定义控件04之 位置说明
- 【译】Android主题动态切换开源库Prism基本原理3-搭配Palette使用
- Canvas: trying to use a recycled bitmap android.graphics.Bitmap@XXX
- Android官网恢复(重新创建)Activity文档翻译:Recreating an Activity
- Android错误之--Error retrieving parent for item: No resource found that matches the given name 'Theme.A