“Samsung Apps”是否支持重定向到特定应用的URI方案?

时间:2012-04-26 22:31:14

标签: android android-intent

我的一位客户热衷于在众多流行的三星设备上推广他的完整应用程序的'精简版'。此精简版将上传至http://www.samsungapps.com,然后用户可以通过the 'Samsung Apps' app下载。 Lite版本具有指向完整应用程序的应用内链接。

现在,我一直在搜索三星的网站,了解有关三星应用程序可以提取和使用的URI方案的任何信息,以直接向用户呈现完整应用程序的相关详细信息。对于Google Play和亚马逊,您只需使用特定的URI方案和应用的包名称即可启动意图; e.g:

Google Play:

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

亚马逊:

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

这些都记录在案,而且非常直接。但是,我无法弄清楚Samsung Apps是否为类似的行为提供了自己的URI方案。

我确实发布了,因为我们在这里讨论的是Android设备,所以我只能链接到Google Play。对我来说,三星会提供一个类似市场的系统而不能链接到那里可用的特定产品,这似乎很奇怪,所以我希望我忽略了一些东西。

有人对此有任何指示吗?请注意,我没有与Samsung Apps兼容的设备来实际测试任何内容。

3 个答案:

答案 0 :(得分:45)

所以我终于找到了隐藏在pdf文档中的问题的答案。它的标题为"Samsung Apps Deeplink Guide",可以从三星的资源中心下载。

对于那些对整个文档不感兴趣的人,其中包含有关如何在Samsung Apps应用程序中调用特定屏幕的一些信息,答案很简单。使用以下格式将URI附加到Intent的数据:

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

例如,三星应用程序中的Samsung Apps应用程序的直接链接(措辞仍然有意义吗?)将是:

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

因此,该应用确实支持类似于Google Play和亚马逊的URI方案。

请注意我还没有测试过,但我确实遇到了最近的raised flag(从2012年4月27日起),显然这个功能突然停止了。根据对该旗帜的回应,三星开发者正在调查它,但我可能会暂时停止这一点,直到确认修复。

答案 1 :(得分:7)

我使用以下代码按包名链接到Google Play,Amazon Appstore和Samsung Galaxy Apps。

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

首先尝试通过URI打开市场应用程序,但如果没有找到打开的Web链接。 我希望这段代码对某人有用。

答案 2 :(得分:1)

这是指向较新文档的链接 Interworking Guide for Android Samsung Apps