Android實現二維碼掃描登入網頁

來源:互聯網
上載者:User

標籤:else   code   src   substr   get   net   map   equals   pos   

? ? 之前寫過一個二維碼掃描demo,用的Zxing的架構,點擊下載。興許掃描二維碼中出現一些問題,比方解決壓縮圖片。調整掃描表單大小等等。

興許單位要求做掃描登入實現,發現痛點就是怎麼知道你掃描的是這台電腦,後台必須擷取到(後台技術的問題)然後把這個參數給我,再傳遞到後台,後台推斷登入就可以。這樣自己掃描後直接傳遞個參數就能夠實現登入了。效果例如以下:


大概代碼實現:掃描跳轉:

//掃描登入acase R.id.tv_more_qr:if (PventQuickClick.isFastDoubleClick()) {break;}DialogUtils.showCommonPopupWindow(context);MyApplication.checkLogin(context, new APPCallback() {@Overridepublic void appCallback(String userid) {// TODO Auto-generated method stubDialogUtils.dismissCommonPopupWindow();Intent openCameraIntent = new Intent(context,CaptureActivity.class);//Zing架構的類startActivityForResult(openCameraIntent,0);}});break;
然後掃描後會返回掃描的結果在onActivityResult

@Overridepublic 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();}}}


然後跳轉到確認登入介面:點擊推斷傳參:

@Overrideprotected 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 固定為1get_checkqrcodelogin.put("sessionid", sessionid);// android 固定為1HttpManager.GetCheckQrCodeLogin(get_checkqrcodelogin, new NetCallBack() {@Overridepublic 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實現二維碼掃描登入網頁

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.