2011-09-22 15 views
8

पर ऐप उपलब्ध है, तो एंड्रॉइड एप्लिकेशन के आईडी/पैकेज नाम को देखते हुए, यदि एंड्रॉइड मार्केट पर एप्लिकेशन उपलब्ध है तो मैं प्रोग्रामिक रूप से कैसे जांच सकता हूं?जांचें कि क्या एंड्रॉइड मार्केट

उदाहरण के लिए:

com.rovio.angrybirds उपलब्ध है, जहां com.random.app.ibuilt रूप

मैं इस चेक या तो ऐसे Android ऐप्लिकेशन से या से प्रदर्शन किया जा होने पर योजना बना रहा हूँ नहीं है एक जावा सर्वलेट।

धन्यवाद,

पुनश्च: मैं http://code.google.com/p/android-market-api/ पर एक दृष्टि डाली, लेकिन मैं अगर वहाँ

+0

सावधान रहें और Google मार्केट के साथ लाइसेंस समझौते के अच्छे प्रिंट को पढ़ें, यह इसका उल्लंघन हो सकता है। – JPM

उत्तर

5

आप ऐप्स के विवरण पृष्ठ को खोलने के लिए कोशिश कर सकते जाँच के लिए किसी भी सरल तरीके से था सोच रहा था - https://market.android.com/details?id=com.rovio.angrybirds

तो एप्लिकेशन doesn't मौजूद हैं, तो आप इस मिल:

enter image description here

यह शायद आदर्श नहीं है, लेकिन आप वापस आ एचटीएमएल पार्स करने के लिए निर्धारित करने के लिए कि एप्लिकेशन मौजूद नहीं है सक्षम होना चाहिए।

+1

उम्मीद है कि यह वास्तव में एक 404 पृष्ठ है, और पार्सिंग की आवश्यकता नहीं होगी, केवल हेडर की जांच करें। हालांकि जांच नहीं की है :) – Jay

+0

मुझे विश्वास नहीं है कि यह दुर्भाग्य से है, लेकिन एचटीएमएल उचित रूप से अच्छी तरह से संरचित दिखता है इसलिए पार्सिंग अपेक्षाकृत सीधे आगे की ओर होनी चाहिए। हालांकि निश्चित रूप से बिना किसी सूचना के बदल सकते हैं। – RivieraKid

+1

@Jay - हाँ, ऐसा लगता है कि यह 404 पृष्ठ है। धन्यवाद – Ares

2

एक Android आवेदन की आईडी/पैकेज नाम को देखते हुए, मैं कैसे प्रोग्राम के जाँच कर सकते हैं आवेदन Android बाजार पर उपलब्ध है?

ऐसा करने के लिए कोई दस्तावेज और समर्थित माध्यम नहीं है।

2

जबकि @Rivieeaid द्वारा HTML पार्सिंग समाधान काम करता है, मैंने पाया कि यह एक अधिक टिकाऊ और सही समाधान हो सकता है। रीडायरेक्ट से बचने के लिए कृपया 'https' उपसर्ग (सादे 'http' नहीं) का उपयोग करना सुनिश्चित करें।

/** 
* Checks if an app with the specified package name is available on Google Play. 
* Must be invoked from a separate thread in Android. 
* 
* @param packageName the name of package, e.g. "com.domain.random_app" 
* @return {@code true} if available, {@code false} otherwise 
* @throws IOException if a network exception occurs 
*/ 
private boolean availableOnGooglePlay(final String packageName) 
     throws IOException 
{ 
    final URL url = new URL("https://play.google.com/store/apps/details?id=" + packageName); 
    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
    httpURLConnection.setRequestMethod("GET"); 
    httpURLConnection.connect(); 
    final int responseCode = httpURLConnection.getResponseCode(); 
    Log.d(TAG, "responseCode for " + packageName + ": " + responseCode); 
    if(responseCode == HttpURLConnection.HTTP_OK) // code 200 
    { 
     return true; 
    } 
    else // this will be HttpURLConnection.HTTP_NOT_FOUND or code 404 if the package is not found 
    { 
     return false; 
    } 
} 
संबंधित मुद्दे