Scanner code barre et récupérer des infos
Bonjour,
Plutôt dans les bases de données normalement, je suis en train de développer une application Android avec Android Studio.
Mon application commencer à ressemble à quelque chose, mais j'ai l'idée de mettre en place un module complémentaire, mais je ne sais absolument si c'est possible et si oui, comment, Est-ce que c'est compliqué....
Dans son module (dans une nouvelle Activité) je souhaiterai pouvoir scanner le code bar d'un produit alimentaire et d'en récupérer 4 infos : g de glucide / de protéine / de lipides et nom du produit.
Cependant, a part savoir que je sais que je pourrai utiliser une librairie comme Zebra-Crossing pour la partie Scan du code barre, je ne vois pas comment récupérer ces 4 informations précises...
De mémoire, dans le code barre on retrouve le code du fabriquant ainsi que le code produit. Comment à partir de là récupérer les informations ? y a t'il une base de données opensource pour récolter ces infos ?
Merci par avance !
Récupérer des infos sur les produits alimentaires à partir du code barre
Il suffit de télécharger la ressource au format json "https://world.openfoodfacts.org/api/v0/product/" +n° code barre + ".json";
Ensuite le code suivant suffit à l'en extraire:
String macible = "https://world.openfoodfacts.org/api/v0/product/" + scanContent + ".json";
URL openfood;
Thread th=new Thread(new Runnable() {
@Override
public void run()
{
String resultat=null;
try {
openfood = new URL(macible);
HttpURLConnection consite = (HttpURLConnection) openfood.openConnection();
consite.connect();
InputStream fluxentrant = null;
fluxentrant = consite.getInputStream();
byte[] b = fluxentrant.readAllBytes();
resultat = new String(b, StandardCharsets.UTF_8);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
int longueur = resultat.length();
JSONObject jsob=null;
String nomprod=null,nomprod1=null,nomprod2=null,image=null;
try
{
jsob=new JSONObject(resultat);
nomprod=(String)jsob.getJSONObject("product").get("abbreviated_product_name");
}
catch (JSONException e)
{
e.printStackTrace();
}
try
{
jsob=new JSONObject(resultat);
nomprod1=(String)jsob.getJSONObject("product").get("brands");
}
catch (JSONException e)
{
e.printStackTrace();
}
try
{
jsob=new JSONObject(resultat);
nomprod2=(String)jsob.getJSONObject("product").get("generic_name");
}
catch (JSONException e)
{
e.printStackTrace();
}
try
{
jsob=new JSONObject(resultat);
image=(String)jsob.getJSONObject("product").get("image_ingredients_url");
}
catch (JSONException e)
{
e.printStackTrace();
}
}
});
th.start();