Java 使用条形码编号获取产品信息,如名称、价格等

Java 使用条形码编号获取产品信息,如名称、价格等,java,android,barcode,Java,Android,Barcode,我正在开发一个应用程序,它使用条码,在扫描条码后获取物品的产品信息 我不希望用户单独安装ZXing条码应用程序,因此我将ZXing代码嵌入到我的项目中。因此,我能够获得条形码ID号 我想通过使用谷歌搜索api获取产品信息,如名称、制造商、价格等 这是我使用的代码 public class JSONExampleActivity extends Activity { TextView httpStuff; DefaultHttpClient client; JSONO

我正在开发一个应用程序,它使用
条码
,在扫描
条码
后获取物品的产品信息

我不希望用户单独安装
ZXing条码
应用程序,因此我将
ZXing
代码嵌入到我的项目中。因此,我能够获得
条形码ID号

我想通过使用谷歌搜索api获取产品信息,如名称、制造商、价格等

这是我使用的代码

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);
    } 
}

请帮助我找到出错的原因。

您想使用和搜索条形码中编码的数字所代表的内容。

尝试将API id添加到url

我试过了,根据你代码的url,我得到了迈克尔·科尔斯MK5412计时手表的信息

{这里是你的钥匙}

因此,您必须修复url生成器以匹配^

还要确保你把

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

在你的舱单上。这家伙的功劳:


快乐编码:)

还有其他条形码数据库,如。

我认为,“用于表示特定产品的条形码编号和条形码编号在全世界都是唯一的。大多数条形码API从自己的数据库中查找给定的条形码编号,以获取特定的产品信息(如果数据库中存在给定的条形码编号),否则不会给出任何结果。”

01.首先,您应该创建自己的数据库,包括数据库中每个项目的条形码编号。(您可以使用多种条形码类型)

02.如果您推出新产品,您应该为您的新产品获取或购买有效的条形码号码(确保您的号码在世界各地都是唯一的)--

**然后,您可以使用数据库查找给定条形码的项目信息**


您好,我使用了谷歌“购物搜索api”和GTIN,正如您指定并更新了我的帖子。请检查代码。我无法获得字符串结果。我发布了日志。您对此有任何解决方案吗?我必须在我的应用程序中为我们的一个客户实现相同的解决方案。您能给我发布解决方案吗?
<uses-permission android:name="android.permission.INTERNET"/>