Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中使用深度链接并添加_Android_Deep Linking - Fatal编程技术网

在android中使用深度链接并添加

在android中使用深度链接并添加,android,deep-linking,Android,Deep Linking,如何在android中单击add-in应用打开另一个应用的特定页面?我正在创建一个显示add的android应用程序。单击该add会打开play store。但我想使用深度链接打开该应用程序的特定页面。e、 g当我单击“添加”按钮打开snapdeal的特定页面时,我会在我的应用程序中获得snapdeal提供的附加功能。如何操作?添加要在playstore中打开的应用程序的软件包名称: String appPackageName = "package_xy"; // eg. com.twitter

如何在android中单击add-in应用打开另一个应用的特定页面?我正在创建一个显示add的android应用程序。单击该add会打开play store。但我想使用深度链接打开该应用程序的特定页面。e、 g当我单击“添加”按钮打开snapdeal的特定页面时,我会在我的应用程序中获得snapdeal提供的附加功能。如何操作?

添加要在playstore中打开的应用程序的软件包名称:

String appPackageName = "package_xy"; // eg. com.twitter.android

try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
}catch (android.content.ActivityNotFoundException e) {
    //if playstore app not installed
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName)));
}
所以你可能需要你的广告来发送他们应用程序的软件包名称。或者只是一个要打开的url(如果是应用程序,可能会在上面的catch中发送playstore浏览器链接,以便您可以检测play.google.com部件并相应地替换,或者如果不是playstore url,则只打开普通网站)

你问如果应用已经安装了会发生什么:还是一样。您应该首先检查它:

Intent i;
PackageManager manager = getPackageManager();
String appPackageName = "package_xy"; 

try {
    i = manager.getLaunchIntentForPackage(appPackageName);
    if (i == null)
        throw new PackageManager.NameNotFoundException();
    i.addCategory(Intent.CATEGORY_LAUNCHER);
    startActivity(i);
} catch (PackageManager.NameNotFoundException e) 
{
    //open playstore instead
}
所以这只是众多方法中的一种。如果在设备上找不到应用程序,则尝试将失败并执行捕获。如果找到它,它将被打开。
就twitter而言,我甚至可以用这样的深度链接打开它:
Intent i=newintent(Intent.ACTION\u视图,Uri.parse(“twitter://status?status_id=“+id”)

对于一些东西,比如PDF,有一些方法可以打开applicationpicker,但我认为这不是本例中需要的。
如果您使用上述代码,您应该不会有问题。只要把第一个片段放到第二个片段中,你就可以了。

如果手机中已经安装了特定的应用程序,会发生什么。