2014-11-20 10 views
9

Desidero aprire Google Play Store direttamente dalla mia app.Come aprire direttamente l'app Google Play Store senza l'intento del selettore

Ecco cosa sto facendo ora.

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

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

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

ma il problema è che mostra altre applicazioni nella casella di selezione delle applicazioni.

Non voglio questo come posso evitare la finestra di Scelta Risorse e aprire direttamente il Play Store?

Aggiornato:

risolto questo problema utilizzando questo:

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("market://search?q=foo")); 
PackageManager pm = getActivity().getPackageManager(); 
List<ResolveInfo> list = pm.queryIntentActivities(intent, 0); 
for (int a = 0; a < list.size(); a++) { 
    ResolveInfo info = list.get(a); 

    ActivityInfo activity = info.activityInfo; 
    if (activity.name.contains("com.google.android")) { 
    ComponentName name = new ComponentName(
           activity.applicationInfo.packageName, 
           activity.name); 
    Intent i = new Intent(Intent.ACTION_MAIN, 
           Uri.parse("http://play.google.com/store/apps/details?id=" 
             + packageName)); 

    i.addCategory(Intent.CATEGORY_LAUNCHER); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
       | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
    i.setComponent(name); 
    startActivity(i); 
    getActivity().finish(); 
    } 
} 
} 

ma ora problema è che si apre la pagina principale del negozio di gioco, ma voglio che reindirizzare a un app specifica la cui nome del pacchetto che sto inviando. Qualcuno mi può aiutare con questo.

L'aiuto è sempre apprezzato.

+0

quali applicazioni in più si vede? –

+0

controlla questo link, sono abbastanza sicuro che tu possa impostare il tuo intento proprio come questo, ma per Action_View, non sono sicuro che non abbia mai provato http://stackoverflow.com/questions/26625505/restricting-share-options/26625813#26625813 – JRowan

+0

passare il nome del pacchetto google store (trova da qualche parte come non lo so) nell'intenzione e verrà avviato il negozio di google – therealprashant

risposta

24

uso di questo codice ... per me funziona

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("https://play.google.com/store/apps/details?id=" + appPackageName))); 
    } 
+2

Cosa fare se il pacchetto non è disponibile? Verrà visualizzata solo una pagina di errore vuota ... –

+0

Esempio semplice e semplice, Accompagnatore amico :) – Zohair

+2

cambia l'URL in 'https: //' –

3

Se ho ottenuto si correttamente, siete alla ricerca di questo.

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("https://play.google.com/store/apps/details?id=" + appPackageName))); 
} 

Prova questa

+0

cambia l'URL in 'https: //' –

Problemi correlati