編輯:關於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); LinkedHashMapget_checkqrcodelogin = new LinkedHashMap (); 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;
盡管網絡上已經有很多關於這個話題的優秀文章了,但還是寫了這篇文章,主要還是為了加強自己的記憶吧,自己過一遍總比看別人的分析要深刻得多,那就走起吧。簡單示例 先看一
最近忙找實習,加上實驗室在推新項目,需要學習新知識。所以很長一段時間沒去整理了官博客了,github也蠻久沒更新,很慚愧。接下來還是要堅持寫。今天就簡單的寫一下我在項目中
最近因為興趣所向,開始學習OpenGL繪圖。本文以“畫球體”為點,小結一下最近所學。 初識OpenGL ES 接觸OpenGL是從Android開始的。眾所周知,A
1.一直以來的疑問Fragment在ViewPager到底經歷了哪些生命周期方法?到底發生了什麼?常會TabLayout和ViewPager配合起來使用,針對這套組合,就