有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个应用程序,可以通过Java从Javascript触发电子邮件,然后附加一个文件

我选择了“电子邮件”或“Gmail”

如果我选择Gmail,那么Gmail客户端将以Expected的形式打开,主题、正文和附件都在那里

但如果我选择电子邮件,我会得到:“应用程序电子邮件(process com.google.安卓.Email)意外停止。强制关闭。”我需要它来使用公司电子邮件,所以这不好

日志显示:“原因:java.lang.illegalArgumentException

知道为什么会这样吗

这是我的代码:

主要活动:

public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setIntegerProperty( "splashscreen", R.drawable.splash );
    super.loadUrl("file:///安卓_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(安卓.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) 个答案

  1. # 1 楼答案

    你需要在文件名前加上“file://”