2011-08-30 34 views
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...")); 
    } 
} 
+0

如果您查看logcat('adb logcat')中的異常,以便向我們提示發生問題的線路,這將有所幫助。 –

+1

我的猜測是它不喜歡你爲'EXTRA_STREAM'傳遞的Uri。您是否嘗試將file://放入文件名中? –

+0

哇。這工作!我把'「file:/// sdcard/test co.html」'並且工作。謝謝! – user899641

回答

3

你需要把 「文件://」,在你的文件名前面。

相關問題