Mam link do moich innych aplikacji w mojej najnowszej aplikacji i otwieram je w ten sposób.
Uri uri = Uri.parse("url");
Intent intent = new Intent (Intent.ACTION_VIEW, uri);
startActivity(intent);
ten kod otwiera wersję przeglądarki sklepu Google Play.
Podczas próby otwarcia z mojego telefonu telefon pyta, czy chcę użyć przeglądarki lub Google Play, a jeśli wybiorę drugą, otwiera mobilną wersję sklepu Google Play.
Czy możesz mi powiedzieć, jak to się może stać od razu? Nie pytaj mnie, ale bezpośrednio otwórz mobilną wersję Google Play, tę, którą widzę, otwierając ją bezpośrednio z telefonu.
android
google-play
Ghostrider
źródło
źródło
market://
protokołu. Czy ktoś jeszcze widział takie zachowanie?Odpowiedzi:
Będziesz chciał użyć określonego
market
protokołu:final String appPackageName = "com.example"; // Can also use getPackageName(), as below startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
Pamiętaj, że spowoduje to awarię na każdym urządzeniu, na którym nie jest zainstalowany Market (na przykład emulator). Stąd proponuję coś takiego:
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))); }
Podczas używania
getPackageName()
fromContext
lub jego podklasy dla spójności (dzięki @cprcrack !). Więcej informacji na temat zamiarów rynkowych można znaleźć tutaj: link .źródło
market://details?id=com.PandoraTV
(zakładając, że jest to aplikacja, której chcesz).market://
prefiksu z własnej aplikacji, a nie ze strony internetowej za pośrednictwem przeglądarki. Mogę potwierdzić jego funkcjonalność (w wersjach 2.3, 3.x, 4.0, 4.1 i 4.2) i działa z podstawową przeglądarką, Chrome Beta 25 i Chrome 18.getPackageName()
aby automatycznie pobrać identyfikator aplikacji.Poniższy kod może pomóc w wyświetleniu linku do aplikacji Google Play w wersji mobilnej.
Link do aplikacji:
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(); }
Dla łącza programisty:
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(); }
źródło
Możesz użyć biblioteki Android Intents do otwierania strony aplikacji w Google Play w następujący sposób:
źródło
Dokumentacja na d.android.com: http://developer.android.com/distribute/googleplay/promote/linking.html
źródło
Możesz sprawdzić, czy aplikacja Sklep Google Play jest zainstalowana, a jeśli tak jest, możesz użyć protokołu „market: //” .
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);
źródło
Otwórz stronę aplikacji w Google Play:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + context.getPackageName())); startActivity(intent);
źródło