title: Android - Scan barcode/QR to open file without Internet access
body: <p>This is mostly a question of design. I would like to label physical items with barcodes or QR codes and scan them to open a local file that corresponds to that item. Here is my specific situation for context:</p>
  
  <p>The reason I need this is so that technicians can scan equipment with an Android phone camera to view past calibration logs and make edits in Google Sheets. The catch is that I want them to be able to do this without internet access. I know that I can make a QR code open a file locally but the file paths differ from phone to phone and I don't want to make barcodes that will be useless next year.</p>
  
  <p>Some of the many options I've considered include:</p>
  
  <p>1.) App that <a href="https://stackoverflow.com/questions/8340875/integrate-zxing-qr-code-scanner-without-installing-barcode-scanner">decodes</a> and <a href="http://code.tutsplus.com/tutorials/android-sdk-create-a-barcode-reader--mobile-17162" rel="nofollow noreferrer">stores</a> QR/barcode as input variable to get file path by <a href="https://stackoverflow.com/questions/12866619/traverse-through-each-file-in-sd-card-using-phonegap-file-api">traversing</a> the directory and comparing the input to local file names (on SD card) with if statements. Then opens file with <a href="http://www.androidsnippets.com/open-file-with-default-application-using-intents" rel="nofollow noreferrer">intents</a>.</p>
  
  <ul>
  <li>Difficult to store barcode/QR code</li>
  </ul>
  
  <p>2.) QR/barcode opens spreadsheet directly from specified URI</p>
  
  <ul>
  <li>Change in file path can render QR/barcodes useless</li>
  </ul>
  
  <p>3.) QR/barcode URI opens app that opens spreadsheet</p>
  
  <ul>
  <li>One application needed per spreadsheet - impractical</li>
  </ul>
  
  <p>Any recommendations would be very helpful. I think the first option seems achievable but I don't know how to store the scanned codes. Perhaps someone with experience is familiar with another way.</p>