Android - 从应用程序发送电子邮件崩溃电子邮件 - 强制关闭

时间:2011-08-30 22:01:49

标签: java javascript android email

我有一个应用程序,它通过Java触发来自Javascript的电子邮件,然后附加文件。

我选择了“电子邮件”或“Gmail”作为选项的选择器。

如果我选择Gmail,那么Gmail客户端会在主题,正文和附件中打开。

但如果我选择电子邮件,我会得到:“应用程序电子邮件(进程com.google.android.email)已意外停止。强行关闭。”我需要它来使用公司电子邮件,所以这是不好的。

日志显示:“引起:java.lang.illegalArgumentException

为什么会发生这种情况?

这是我的代码:

MainActivity:

public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setIntegerProperty( "splashscreen", R.drawable.splash );
    super.loadUrl("file:///android_asset/www/index.html", 1000);
    JavaScriptInterface jsi = new JavaScriptInterface(this, appView);
    appView.addJavascriptInterface(jsi, "Android");
    }
} 

JavaScriptInterface

public class JavaScriptInterface {
private WebView mAppView;
private DroidGap mGap;
public JavaScriptInterface (DroidGap gap, WebView view)
{
    mAppView = view;
    mGap = gap;
    }
public void doEmail(){

    Intent sendIntent = new Intent(Intent.ACTION_SEND);
    sendIntent.setType("text/html");
    sendIntent.putExtra(android.content.Intent.EXTRA_TEXT,"test text");
    sendIntent.putExtra(Intent.EXTRA_SUBJECT,"test subject");
    sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    sendIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse("sdcard/test co.html"));
    mGap.startActivity(Intent.createChooser(sendIntent, "Send email..."));
    }
} 

1 个答案:

答案 0 :(得分:3)

您需要在文件名前添加“file://”。