2012-06-06 16 views
86

में Google play store का खुला लिंक मेरे नवीनतम ऐप में मेरे अन्य ऐप्स का लिंक है, और मैं उन्हें इस तरह से खोलता हूं।मोबाइल संस्करण एंड्रॉइड

Uri uri = Uri.parse("url"); 
Intent intent = new Intent (Intent.ACTION_VIEW, uri); 
startActivity(intent); 

यह कोड google play store का ब्राउज़र संस्करण खोलता है।

मेरे फोन से खोलने का प्रयास करते समय, फ़ोन संकेत देता है कि मैं ब्राउज़र या Google play का उपयोग करना चाहता हूं और यदि मैं दूसरा चुनता हूं तो यह Google Play store का मोबाइल संस्करण खोलता है।

क्या आप मुझे बता सकते हैं कि यह एक बार में कैसे हो सकता है? मेरा मतलब है कि मुझसे पूछें लेकिन सीधे Google Play का मोबाइल संस्करण खोलें, जिसे मैं सीधे फोन से खोलता हूं।

final String appPackageName = "com.example"; // Can also use getPackageName(), as below 
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName))); 

ध्यान रखें, यह (उदाहरण के लिए, एमुलेटर) है कि बाजार इंस्टॉल नहीं है, किसी भी डिवाइस पर दुर्घटना होगा:

+1

काश मेरे लिए सच था कि पिछले पैराग्राफ से पीछे नहीं। यहां मिले http लिंक का उपयोग करना: http://developer.android.com/distribute/googleplay/promote/linking.html#OpeningDetails उपयोगकर्ता को ऐप या ब्राउज़र चुनने के लिए संकेत नहीं देता है। यह हमेशा ब्राउज़र मानता है। दुर्भाग्यवश, मैं 'बाजार: //' प्रोटोकॉल का उपयोग नहीं कर सकता। कोई और इस व्यवहार को देख रहा है? – SilithCrowe

उत्तर

260

आप निर्दिष्ट market प्रोटोकॉल का उपयोग करना चाहते हैं।

final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object 
try { 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName))); 
} catch (android.content.ActivityNotFoundException anfe) { 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName))); 
} 

स्थिरता के लिए उसके Context या उपवर्ग से getPackageName() का उपयोग करते समय: इसलिए, मैं की तरह कुछ सुझाव है (धन्यवाद @cprcrack!)। आप यहां बाजार उद्देश्यों पर अधिक पा सकते हैं: link

+0

ब्राउज़र में निम्न को खोलना Google Play नहीं खोलता है: बाजार: // विवरण? Id = pandora –

+1

आईडी पैकेज का नाम है, ऐप का नाम नहीं। 'बाजार: // विवरण? Id = com.PandoraTV' (मान लें [यह] (https://play.google.com/store/apps/details?id=com.PandoraTV) वह ऐप है जिसे आप चाहते हैं)। – Eric

+0

किसी भी लिंक को खोलने का प्रयास करें जो बाजार से शुरू होता है: // एंड्रॉइड के लिए क्रोम में। आप देखेंगे कि यह केवल एक खोज परिणाम करता है, यह Google Play store नहीं खोलता है।यदि पेंडोरा पैकेज का नाम यहां सही है तो यह अप्रासंगिक है, मैं आपको सौ सौ सही पैकेज नाम दे सकता हूं और यह समस्या को नहीं बदलेगा। –

3

आप गूगल की तरह खेलते हैं आपके आवेदन पेज खोलने के लिए Android Intents लाइब्रेरी का उपयोग कर सकते हैं:

Intent intent = IntentUtils.openPlayStore(getApplicationContext()); 
startActivity(intent); 
+2

ध्यान दें कि [लिंक-केवल उत्तर] (http://meta.stackoverflow.com/tags/link-only-answers/info) निराश हैं, इसलिए SO समाधान समाधान के लिए खोज का अंत बिंदु होना चाहिए (बनाम। फिर भी संदर्भों का एक और स्टॉपओवर, जो समय के साथ पुराना हो जाता है)। लिंक को संदर्भ के रूप में रखते हुए, यहां स्टैंड-अलोन सारांश जोड़ना पर विचार करें। – kleopatra

+4

यह अस्वीकरण शामिल करना सहायक होगा कि यह आपकी लाइब्रेरी है और [फ़ंक्शन लागू किया गया है] (http://grepcode.com/file/repo1.maven.org/maven2/com.dmitriy-tarasov/android-intents/ 1.1.0/कॉम/डमिट्री/टैरासोव/एंड्रॉइड/इरादों/IntentUtils.java # IntentUtils.openPlayStore% 28com.dmitriy.tarasov.android.intents.Context% 29) स्वीकार्य उत्तर के समान ही वही है। –

5

नीचे कोड मई मोबाइल संस्करण में गले में खेलने गूगल के प्रदर्शन आवेदन लिंक के लिए आप में मदद करता है।

आवेदन लिंक के लिए:

Uri uri = Uri.parse("market://details?id=" + mContext.getPackageName()); 
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri); 

    try { 
     startActivity(myAppLinkToMarket); 

     } catch (ActivityNotFoundException e) { 

     //the device hasn't installed Google Play 
     Toast.makeText(Setting.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show(); 
       } 

डेवलपर लिंक के लिए:

Uri uri = Uri.parse("market://search?q=pub:" + YourDeveloperName); 
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri); 

      try { 

       startActivity(myAppLinkToMarket); 

      } catch (ActivityNotFoundException e) { 

       //the device hasn't installed Google Play 
       Toast.makeText(Settings.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show(); 

      } 
1

आप अगर यह है जाँच कर सकते हैं Google Play स्टोर एप्लिकेशन इंस्टॉल है और, मामला, आप "बाजार: //" प्रोटोकॉल का उपयोग कर सकते हैं।

final String my_package_name = "........." // <- HERE YOUR PACKAGE NAME!! 
String url = ""; 

try { 
    //Check whether Google Play store is installed or not: 
    this.getPackageManager().getPackageInfo("com.android.vending", 0); 

    url = "market://details?id=" + my_package_name; 
} catch (final Exception e) { 
    url = "https://play.google.com/store/apps/details?id=" + my_package_name; 
} 


//Open the app page in Google Play store: 
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 
startActivity(intent); 
0

Google Play पर एप्लिकेशन खोलें पेज:

Intent intent = new Intent(Intent.ACTION_VIEW, 
       Uri.parse("market://details?id=" + context.getPackageName())); 
startActivity(intent); 
संबंधित मुद्दे