Zxing сканирует множество штрих-кодов / QR-кодов, поэтому первое, что вам нужно сделать, это выяснить, является ли продукт UPC или QR-кодом:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
String response = data.getAction();
if(Pattern.matches("[0-9]{1,13}", response)) {
// response is a UPC code, fetch product meta data
// using Google Products API, Best Buy Remix, etc.
} else {
// QR code - phone #, url, location, email, etc.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(response));
startActivity(intent);
}
}
}
Существует ряд доступных веб-сервисов, которые возвращают метаданные продукта с кодом UPC. Достаточно всеобъемлющим будет Google Search API для покупок . Например, вы можете получить json-представление продукта с UPC = 037988482481 с URL-адресом, который выглядит следующим образом:
https://www.googleapis.com/shopping/search/v1/public/products?country=US&key=your_key_here&restrictBy=gtin:037988482481
Вам нужно заменить "your_key_here" на ваш ключ API Google.
Best Buy также предлагает RESTful API продуктов для всех продуктов, которые они несут, которые можно искать по коду UPC.
Вы захотите использовать AsyncTask для получения метаданных продукта, как только у вас будет UPC.