code: protected boolean extractPublicData(final Application pApplication) throws CommunicationException {
  		boolean ret = false;
  		// Select AID
  		byte[] data = selectAID(pApplication.getAid());
  		// check response
  		// Add SW_6285 to fix Interact issue
  		if (ResponseUtils.contains(data, SwEnum.SW_9000, SwEnum.SW_6285)) {
  			// Update reading state
  			pApplication.setReadingStep(ApplicationStepEnum.SELECTED);
  			// Parse select response
  			ret = parse(data, pApplication);
  			if (ret) {
  				// Get AID
  				String aid = BytesUtils.bytesToStringNoSpace(TlvUtil.getValue(data, EmvTags.DEDICATED_FILE_NAME));
  				String applicationLabel = extractApplicationLabel(data);
  				if (applicationLabel == null) {
  					applicationLabel = pApplication.getApplicationLabel();
  				}
  				if (LOGGER.isDebugEnabled()) {
  					LOGGER.debug("Application label:" + applicationLabel + " with Aid:" + aid);
  				}
  				template.get().getCard().setType(findCardScheme(aid, template.get().getCard().getCardNumber()));
  				pApplication.setAid(BytesUtils.fromString(aid));
  				pApplication.setApplicationLabel(applicationLabel);
  				pApplication.setLeftPinTry(getLeftPinTry());
  				pApplication.setTransactionCounter(getTransactionCounter());
  				template.get().getCard().setState(CardStateEnum.ACTIVE);
  			}
  		}
  		return ret;
  	}
docs: Read public card data from parameter AID
  
  @param pApplication
  application data
  @return true if succeed false otherwise
  @throws CommunicationException communication error