【问题标题】:send message directly to whatsapp using context.startActivity使用 context.startActivity 直接向 whatsapp 发送消息
【发布时间】:2015-02-25 07:46:30
【问题描述】:

我想直接通过 whatsapp 发送消息,我发现下面的代码有效。但是在我将代码作为通用函数调用移动到另一个 java 文件后,它不起作用并崩溃。那么有什么问题呢?谢谢

之前:

Intent sendIntent = new Intent();
            sendIntent.setAction(Intent.ACTION_SEND);
            sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
            sendIntent.setType("text/plain");
            sendIntent.setPackage("com.whatsapp");
            startActivity(sendIntent);

之后:

public void share2whatsapp(Context context) {

    Intent sendIntent = new Intent(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.setType("text/plain");
    sendIntent.setPackage("com.whatsapp");
    context.startActivity(sendIntent);
}

【问题讨论】:

  • 你的日志猫在哪里???
  • 上下文不为空。是的,我在 logcat 上找到了一些信息并添加了如下标志:- sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);12-29 14:55:39.558: E/AndroidRuntime(13592): FATAL EXCEPTION: main 12-29 14 :55:39.558: E/AndroidRuntime(13592): android.util.AndroidRuntimeException: 从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?但是,在我完成发送第一条并尝试发送另一条后,whatsapp 不会显示第二条消息。还是有什么问题吗?

标签: android android-intent code-reuse start-activity


【解决方案1】:
public void share2whatsapp(Context context) {
    Intent sendIntent = new Intent(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.setType("text/plain");
    sendIntent.setPackage("com.whatsapp");
    sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(sendIntent);
}

【讨论】:

  • 考虑为您的答案添加一些解释。仅代码的答案通常不被认为特别有用。
  • sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);按照调试器的建议添加
猜你喜欢
  • 2013-10-08
  • 2019-09-19
  • 2019-11-13
  • 1970-01-01
  • 2017-05-16
  • 2019-09-17
  • 2017-02-04
  • 2020-11-13
  • 1970-01-01
相关资源
最近更新 更多