Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實現二維碼掃描登錄網頁

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

編輯:關於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 get_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;

這樣就可以實現二維碼掃描登錄,二維碼demo下載,解決掃描框大小和圖片壓縮問題

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved