Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Obtener información del producto como nombre, precio, etc, utilizando el número de código de barras

Estoy desarrollando una aplicación que utiliza código de barras para obtener la información del producto de los elementos después de escanear el código de barras.

No quiero que el usuario instale la aplicación de código de barras de ZXing por separado, por lo que incorporé el código de ZXing en mi proyecto. Así que pude obtener el número de identificación del código de barras.

Quiero obtener la información del producto como nombre, fabricante, precio, etc, utilizando el número de código de barras mediante google búsqueda api para ir de compras.

Aquí está el código que he usado

public class JSONExampleActivity extends Activity { TextView httpStuff; DefaultHttpClient client; JSONObject json; final static String URL = "https://www.googleapis.com/shopping/search"; String upc = "/v1/public/products?country=US&q=691464717759&restrictBy=gtin=691464717759"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); httpStuff = (TextView) findViewById(R.id.tvHttp); client = new DefaultHttpClient(); new Read().execute("items"); } public JSONObject products(String upc) throws ClientProtocolException, IOException, JSONException { StringBuilder url = new StringBuilder(URL); url.append(upc); HttpGet get = new HttpGet(url.toString()); HttpResponse r = client.execute(get); int status = r.getStatusLine().getStatusCode(); if (status == 200) { HttpEntity e = r.getEntity(); String data = EntityUtils.toString(e); JSONObject timeline = new JSONObject(data); return timeline; } else { Toast.makeText(JSONExampleActivity.this, "error", Toast.LENGTH_SHORT); return null; } } public class Read extends AsyncTask<String, Integer, String> { @Override protected String doInBackground(String... params) { // TODO Auto-generated method stub try { json = products(upc); return json.getString(params[0]); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } @Override protected void onPostExecute(String result){ httpStuff.setText(result); } } 

}

Pero no estoy recibiendo ningún texto en httpStuff.

Este es el logcat:

 D/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol W/System.err(793): org.apache.http.conn.ConnectTimeoutException: Connect to /209.85.175.95:443 timed out W/System.err(793): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) W/System.err(793): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143) W/System.err(793): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) W/System.err(793): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) W/System.err(793): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359) W/System.err(793): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) W/System.err(793): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) W/System.err(793): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) W/System.err(793): at com.android.example.jsonexample.JSONExampleActivity.products(JSONExampleActivity.java:53) W/System.err(793): at com.android.example.jsonexample.JSONExampleActivity$Read.doInBackground(JSONExampleActivity.java:77) W/System.err(793): at com.android.example.jsonexample.JSONExampleActivity$Read.doInBackground(JSONExampleActivity.java:1) W/System.err(793): at android.os.AsyncTask$2.call(AsyncTask.java:185) W/System.err(793): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) W/System.err(793): at java.util.concurrent.FutureTask.run(FutureTask.java:138) W/System.err(793): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) W/System.err(793): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) W/System.err(793): at java.lang.Thread.run(Thread.java:1019) D/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol 

Por favor, ayúdame a encontrar la razón por la que estoy recibiendo error.

  • Unknown Codificación para Data Matrix codificada con google Barcode Scanner (Vision)
  • Lectura de código de barras con foto tomada con cámara de teléfono móvil
  • ¿Cómo cambiar el área de escaneo Zbar?
  • Android: la exploración del código de barras de zxing tuvo éxito pero no regresó de la actividad
  • ¿Hay alguna biblioteca java para leer los códigos de barras del número vin de la imagen?
  • Biblioteca de códigos de barras de Google Vision no encontrada
  • ZXing en Android PDF417
  • Cualquier biblioteca pdf417 para android SDK?
  • 4 Solutions collect form web for “Obtener información del producto como nombre, precio, etc, utilizando el número de código de barras”

    Intenta agregar tu ID de API a la url. https://developers.google.com/shopping-search/v1/getting_started#getting-started

    Lo probé y pude obtener la información de Michael Kors MK5412 Relojes Cronógrafo basado en la url de su código.

    https://www.googleapis.com/shopping/search/v1/public/products?country=US&q=691464717759&restrictBy=gtin=691464717759&key= {your key here}

    Como resultado, tiene que arreglar el generador de url para que coincida con ^.

    También asegúrese de poner

     <uses-permission android:name="android.permission.INTERNET"/> 

    En su manifiesto. Crédito a este tipo: http://androidforums.com/developer-101/100793-java-net-unknownhostexception.html .

    Feliz codificación

    Desea usar la API y buscar por GTIN, que es lo que representa el número codificado en el código de barras.

    También hay otras bases de datos de códigos de barras, como ean-search.org .

    Creo que "un número de código de barras utilizado para denotar un producto en particular y el número de código de barras es único para todo el world.most barcode apis encontrar el número de código de barras de su propia base de datos para obtener esa información de producto en particular Su base de datos) de lo contrario no da ningún resultado. "

    01.Primero debes crear tu propia base de datos incluyendo números de código de barras para cada elemento de tu base de datos. (Hay tantos tipos de códigos de barras que puedes usar)

    02.si introduce un nuevo producto, debe obtener o comprar un número de código de barras válido para su nuevo producto (asegúrese de que su número es único para todo el mundo) .–

    ** entonces usted puede utilizar su base de datos para encontrar la información del artículo para un código de barras determinado **

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.