На самом деле, ваша задача разбивается на более простые. И их реализация зависит от архитектуры вашего приложения.
1. Сканировать штрихкод: для этого есть готовые решения, которые можно вызвать из вашего приложения с помощью интента, либо есть библиотеки, которые вы можете включить в своё приложение. Zxing вам уже посоветовали.
2. Есть ли код в списке? - в зависимости от того, что вы называете списком, как он у вас реализован, это будет либо поиск в коллекции, либо поиск по базе данных. В любом случае, и у коллекций и у баз данных есть методы для поиска.
3. Что значит "отсканирован ранее", опять же, зависит от реализации вашего приложения.
Итак, какого рода готового решения вам не хватает?