2012-04-26 22 views
27

Jeden z moich klientów chce promować "lite" wersję swojej pełnej aplikacji na wielu popularnych urządzeniach Samsung. Ta wersja Lite zostanie przesłana do http://www.samsungapps.com, a użytkownicy będą mogli ją pobrać przez the 'Samsung Apps' app. Wersja Lite zawiera link do aplikacji do pełnej aplikacji.Czy "Aplikacje Samsung" obsługują schemat identyfikatora URI w celu przekierowania do określonych aplikacji?

Teraz szukałem w witrynie Samsunga jakichkolwiek informacji na temat schematu URI, który Samsung Apps może pobrać i wykorzystać do bezpośredniego przedstawienia użytkownikowi odpowiednich szczegółów pełnej aplikacji. Zarówno dla Google Play, jak i Amazon możesz po prostu odpalić intencję z określonym schematem URI i nazwą pakietu aplikacji; np:

Google Play:

marketIntent.setData(Uri.parse("market://details?id=" + FULL_VERSION_PACKAGE_NAME)); 

Amazon:

marketIntent.setData(Uri.parse("http://www.amazon.com/gp/mas/dl/android?p=" + FULL_VERSION_PACKAGE_NAME)); 

To wszystko udokumentowane i dość łatwe do znalezienia. Nie udało mi się jednak ustalić, czy Samsung Apps zapewnia własny schemat identyfikatora URI dla podobnych zachowań.

Wydaje mi się, że skoro mówimy tu o urządzeniach z Androidem, mógłbym po prostu połączyć się z Google Play. Po prostu wydaje mi się dziwne, że Samsung oferowałby system podobny do rynku, bez możliwości łączenia się z konkretnymi produktami dostępnymi tam, więc mam nadzieję, że coś przeoczyłem.

Czy ktoś ma jakieś wskazówki na ten temat? Zwróć uwagę, że nie mam urządzenia (kompatybilnego) z Samsung Apps, aby faktycznie przetestować cokolwiek.

+0

@ MH..ah ~ ..itro pytanie o produkt Samsung. Jestem Koreanką i przebywam w Seulu od ponad 50 lat. Mam pewne pomysły na temat aplikacji Samsung. Jeśli masz pytanie dotyczące koreańskich produktów lub aplikacji, skontaktuj się ze mną. – BBonDoo

Odpowiedz

45

W końcu udało mi się znaleźć odpowiedź na moje pytanie ukryte w dokumencie PDF. Jest to tytuł "Samsung Apps Deeplink Guide" i można go pobrać z centrum zasobów Samsung.

Dla osób niezainteresowanych całym dokumentem, które zawierają informacje o tym, jak wywoływać określone ekrany w aplikacji Samsung Apps, odpowiedź jest prosta. Dołączanie URI do danych, Intent jest w następującym formacie:

samsungapps://ProductDetail/<the package name of the AndroidManifest.xml> 

Na przykład, bezpośredni link do aplikacji Samsung Apps w Samsung Apps (? Frazowanie jeszcze sens) byłoby:

samsungapps://ProductDetail/com.sec.android.app.samsungapps 

Aplikacja rzeczywiście obsługuje schemat URI podobny do Google Play i Amazon, jak podejrzewano.

Należy pamiętać, że nie byłem w stanie przetestować to jeszcze, ale nie natknąć niedawno raised flag (od 27 kwietnia 2012), który najwyraźniej ta funkcjonalność nagle przestał działać. Zgodnie z odpowiedzią na tę flagę deweloperzy Samsung szukają go, ale mogę po prostu wstrzymać się z tym, dopóki poprawka nie zostanie potwierdzona.

+0

Czy byłeś w stanie sprawić, by działało w końcu? – deeJ

+0

@deeJ: Przepraszamy za opóźnienie, ale nie mogłem go przetestować do dzisiaj. Mogę ** potwierdzić **, że najnowsza aplikacja Samsung Apps rzeczywiście filtruje intencje z danymi 'Uri' ustawionym na powyższy format. Wygląda na to, że programiści nieco później wyłączyli tę funkcjonalność, ale wszystko znowu działa dobrze. Nadzieja, która pomaga. –

+1

Potwierdzam również, że aktualizacja do najnowszych aplikacji Samsung rozwiązuje ten problem. Teraz uruchomiliśmy aplikację Samsung Apps ze szczególnym uwzględnieniem strony mojej aplikacji. Wielkie dzięki. – deeJ

7

Używam następujący kod z linkami do Google Play, Amazon Appstore i Samsung Galaxy Apps przez nazwy pakietu.

public static final String MARKET_GOOGLE_URL = "market://details?id="; 
public static final String WEB_GOOGLE_URL = "http://play.google.com/store/apps/details?id="; 

public static final String MARKET_SAMSUNG_URL = "samsungapps://ProductDetail/"; 
public static final String WEB_SAMSUNG_URL = "http://www.samsungapps.com/appquery/appDetail.as?appId="; 

public static final String MARKET_AMAZON_URL = "amzn://apps/android?p="; 
public static final String WEB_AMAZON_URL = "http://www.amazon.com/gp/mas/dl/android?p="; 

public static void openOnMarket(String market, String web, Context context, String packageName) { 

    try { 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(market + packageName)); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(intent); 
    } catch (android.content.ActivityNotFoundException anfe) { 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(web + packageName)); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(intent); 
    } 

} 


public static void openOnGooglePlayMarket(Context context, String packageName) { 
    openOnMarket(MARKET_GOOGLE_URL, WEB_GOOGLE_URL, context, packageName); 
} 

public static void openOnSamsungMarket(Context context, String packageName) { 
    openOnMarket(MARKET_SAMSUNG_URL, WEB_SAMSUNG_URL, context, packageName); 
} 

private static void openOnAmazonMarket(Context context, String packageName) { 
    openOnMarket(MARKET_AMAZON_URL, WEB_AMAZON_URL, context, packageName); 
} 

Najpierw próbuje otworzyć aplikację rynku przez URI, ale jeśli nie zostanie znaleziony otwarty link do strony internetowej. Mam nadzieję, że ten kod przyda się komuś.

+0

to WEB_SAMSUNG_URL nadal działa z dokładnie powyższym łańcuchem? Próbowałem dla istniejącej aplikacji, ale nie działało. Czy ktokolwiek może udostępniać działający? Właśnie dostaję przekierowanie do (http://www.samsung.com/in/apps/mobile/galaxyapps/?redirectionId=http://apps.samsung.com/appquery/appDetail.as) zamiast strony aplikacji – AndroidMechanic

+0

@AndroidMechanic, tak, WEB_SAMSUNG_URL nadal działa z dokładnym ciągiem powyżej –

Powiązane problemy