android - 为什么会为此 Intent 弹出 "complete action using"?

标签 android android-intent dialog

我刚刚将一些社交网络链接到我的应用程序作为初步测试,并使用相同类型的代码,我得到的结果对于 Facebook、Instagram 和 Twitter Intent 是不同的。

当我单击 Facebook 或 Twitter 时,它会在安装时自动打开应用程序,而在未安装时使用浏览器。然而,Instagram 的情况并非如此。使用对话框弹出完整的操作,这不是我想要发生的事情。

protected void LaunchInstagram() {
    String InstagramUsername = "USERNAME";
    String LaunchInstagram = "http://instagram.com/_u/" + InstagramUsername;
    String InstagramURL = "https://instagram.com/" + InstagramUsername;
    try {
        this.getPackageManager().getPackageInfo("com.instagram.android", 0);
        Uri Uri = Uri.parse(LaunchInstagram);
        startActivity(new Intent(Intent.ACTION_VIEW, Uri));
    } catch (PackageManager.NameNotFoundException InstagramAppNotFoundOpenBrowser) {
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(InstagramURL)));
    }
}

最佳答案

您正在使用

字符串 InstagramURL = "https://instagram.com/ "+ Instagram 用户名;

因此,您尝试启动的每个 Intent 都会打开一个选择器,因为这是一个 URL。

比每个支持 URL 的应用程序(例如浏览器等)都会尝试处理该问题。

编辑1:

尝试这样:

public static boolean openApp(Context context, String packageName) {
    PackageManager manager = context.getPackageManager();
    try {
        Intent i = manager.getLaunchIntentForPackage(packageName);
        if (i == null) {
            return false;
            //throw new PackageManager.NameNotFoundException();
        }
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        context.startActivity(i);
        return true;
    } catch (PackageManager.NameNotFoundException e) {
        return false;
    }
}

我不确定这是否会帮助您打开应用程序上的特定用户页面。

编辑2:

尝试这样:

        Uri uri = Uri.parse("http://instagram.com/_u/USERNAME");
    Intent insta = new Intent(Intent.ACTION_VIEW, uri);

    insta.setPackage("com.instagram.android");
startActivity(insta);

关于android - 为什么会为此 Intent 弹出 "complete action using"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32929702/

相关文章:

Android Intent 在 Google+ 社区屏幕上启动 Google+ 应用程序

android - 发送包含 HTML 内容的电子邮件

android - 警报对话框应该从屏幕底部弹出?

android从对话框按钮单击打开键盘

android - 无法在android中集成g+登录

android - 即使下载了安装工具,也出现未安装错误

Android 服务器异步通信

android - fragment 中的操作栏项目单击处理程序

android - 使用 adb shell am start 命令启动 Activity 时 -n 的用途是什么

python - 如何将 "dialog"输出流式传输到标准输出?