1
我有一個應用程序,觸發從Javascript通過Java,然後附加文件的電子郵件。Android - 從應用程序發送電子郵件崩潰電子郵件 - 力量關閉
我得到的選擇器有「電子郵件」或「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..."));
}
}
如果您查看logcat('adb logcat')中的異常,以便向我們提示發生問題的線路,這將有所幫助。 –
我的猜測是它不喜歡你爲'EXTRA_STREAM'傳遞的Uri。您是否嘗試將file://放入文件名中? –
哇。這工作!我把'「file:/// sdcard/test co.html」'並且工作。謝謝! – user899641