2012-04-06 14 views
13

का उपयोग कर नाम, मूल्य इत्यादि जैसे उत्पाद की जानकारी प्राप्त करना मैं एक ऐप विकसित कर रहा हूं जो बारकोड स्कैन करने के बाद आइटम की उत्पाद जानकारी प्राप्त करने के लिए बारकोड का उपयोग करता है।बारकोड संख्या

मैं नहीं चाहता कि उपयोगकर्ता ज़ेडएक्सिंग बारकोड ऐप को अलग से स्थापित करे, इसलिए मैंने अपनी परियोजना में जेएक्सिंग कोड को एम्बेड किया। तो मैं बारकोड आईडी नंबर प्राप्त करने में सक्षम था।

मैं खरीदारी के लिए Google खोज एपीआई का उपयोग कर बार कोड संख्या का उपयोग कर नाम, निर्माता, मूल्य आदि जैसे उत्पाद की जानकारी प्राप्त करना चाहता हूं।

यहाँ कोड मैं

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


} 

}

का इस्तेमाल किया है है लेकिन मैं httpStuff में कोई पाठ नहीं मिल रहा है।

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 

कृपया मेरी मदद कारण है कि मैं त्रुटि हो रही है लगता है:

यह logcat है।

+0

के लिए आइटम जानकारी आप इस के लिए किसी भी समाधान मिला खोजने के लिए अपने डेटाबेस का उपयोग कर सकते हैं? मुझे अपने ऐप में हमारे क्लाइंट में से एक के लिए इसे लागू करना होगा। क्या आप कृपया मुझे समाधान पोस्ट कर सकते हैं? – Noundla

उत्तर

1

आप the API का उपयोग करना चाहते हैं और GTIN पर खोज करना चाहते हैं जो कि बार कोड में एन्कोड किए गए नंबर का प्रतिनिधित्व करता है।

+0

हाय, मैंने Google "खरीदारी के लिए खोज एपीआई" और जीटीआईएन का उपयोग किया है जैसा आपने मेरे पोस्ट को निर्दिष्ट और अपडेट किया है .. कृपया कोड जांचें। मैं स्ट्रिंग परिणाम प्राप्त करने में सक्षम नहीं हूं। मैंने लॉगकैट पोस्ट किया है – DSP

5

यूआरएल में अपनी एपीआई आईडी जोड़ने का प्रयास करें। https://developers.google.com/shopping-search/v1/getting_started#getting-started

मैंने कोशिश की और अपने कोड के यूआरएल के आधार पर माइकल कोर एमके 5412 क्रोनोग्रफ़ घड़ियां की जानकारी प्राप्त करने में सक्षम था।

https://www.googleapis.com/shopping/search/v1/public/products?country=US&q=691464717759&restrictBy=gtin=691464717759&key= {यहाँ अपने प्रमुख}

नतीजतन, आप अपने URL निर्माता मैच के लिए ठीक करने के लिए^है।

यह भी सुनिश्चित करें कि आप अपने मेनिफ़ेस्ट में

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

डाल सकते हैं। इस लड़के को क्रेडिट: http://androidforums.com/developer-101/100793-java-net-unknownhostexception.html

मुबारक कोडिंग :)

0

मुझे लगता है, "किसी विशेष उत्पाद को इंगित करने के लिए उपयोग किया जाने वाला एक बारकोड नंबर और बारकोड नंबर दुनिया भर के लिए अद्वितीय है। अधिकांश बारकोड एपीआई को उस विशेष उत्पाद जानकारी (यदि दिया गया हो) के लिए दिए गए बारकोड नंबर को अपने डेटाबेस से मिलता है बारकोड संख्या उनके डेटाबेस में मौजूद है) अन्यथा यह कोई परिणाम नहीं देता है। "

01.first आप अपने डेटाबेस में प्रत्येक आइटम के लिए बारकोड नंबर सहित अपने डेटाबेस बनाना चाहिए।

02.if आप एक नए उत्पाद परिचय (वहाँ इतने सारे बारकोड प्रकार है कि आप उपयोग कर सकते हैं), आपको अपने नए उत्पाद के लिए एक वैध बारकोड नंबर प्राप्त करना या खरीदना चाहिए (सुनिश्चित करें कि आपकी संख्या पूरी दुनिया में अद्वितीय है)।-

** तो आप किसी दिए गए बारकोड **

संबंधित मुद्दे