【问题标题】:when I use Intent.ACTION_SEND to Facebook and Instagram,The Results appears ActivityNotFoundException当我使用 Intent.ACTION_SEND 到 Facebook 和 Instagram 时,结果出现 ActivityNotFoundException
【发布时间】:2017-01-13 08:31:47
【问题描述】:

enter image description here 这是例外!

这些是代码!这不一定会发生,在服务中,设备的日志显示是三星的,系统大于android 6.0。不知道是什么原因,能不能帮帮我,谢谢大家

public static void share(Context context, String packageName, String path, String content) {

    Intent intent = new Intent(Intent.ACTION_SEND);
    if (TextUtils.isEmpty(path)) {
        intent.setType("text/plain"); // 
    } else {
        File file = new File(path);
        if (file.exists() && file.isFile()) {
            intent.setType("image/*");
            Uri uri = Uri.fromFile(file);
            intent.putExtra(Intent.EXTRA_STREAM, uri);
        }
    }

    intent.putExtra(Intent.EXTRA_TEXT, content);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    if (!TextUtils.isEmpty(packageName)) {
        intent.setPackage(packageName);
        context.startActivity(intent);
        return;
    }
    context.startActivity(Intent.createChooser(intent, ""));
}

【问题讨论】:

  • 你在用模拟器吗?
  • 没有,我是用手机测试的,这是一个偶然的问题,在我们开发中,我们不会出现这个问题。

标签: android facebook action instagram send


【解决方案1】:

问题是操作系统没有找到任何可以处理这个 ACTION_SEND 的活动。用 try/catch 包围这种代码,因为您无法确定是否存在可以处理您的意图的活动。 并尝试安装至少一个可以处理 ACTION_SEND 的应用程序,然后再试一次,看看它是否适合您

【讨论】:

  • 这是用户对我们的反馈,在我们的开发中,我们没有出现这个问题,我再试一次也没有出现这个问题。因为facebook,它是一个按钮,当检查facebook不存在,我们将其设置为 Visible.GONE。所以我觉得不应该出现这个问题
【解决方案2】:

在调用 startActivity(intent) 之前,您应该使用 intent.resolveActivity(getPackageManager()) != null) 检查是否有活动可以解决此意图。

【讨论】:

  • 在 startActivity(intent) 之前,我检查了 facebook 是否存在。如果不存在,则facebook的按钮不可见
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多