2012-10-01 38 views
0

我在2.3.3應用程序中創建了以下代碼(這只是一段代碼片段)。在2.3.3 sdk上運行的所有android設備是否都有默認的電子郵件客戶端?

 else if(intentName.contains("Email")) 
     { 
      System.out.println(); 
      System.out.println("Button["+ i + "] intent name contains : EMAIL"); 
      System.out.println("Button["+ i + "] intent EMAIL contains: " + parameter); 

      send_email = new Intent(Intent.ACTION_SEND); 
      send_email.setType("message/rfc822"); 
      send_email.putExtra(Intent.EXTRA_EMAIL, parameter); 
      send_email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
      send_email.putExtra(Intent.EXTRA_SUBJECT, ""); 
      send_email.putExtra(Intent.EXTRA_TEXT,""); 

      onClick[i] = new OnClickListener() 
      { 
      public void onClick(View arg0) 
      { 
       try 
       { 
        con.startActivity(send_email); 
       } 
       catch(ActivityNotFoundException ex) 
       { 
        Toast.makeText(con, "No Email Clients Installed", Toast.LENGTH_LONG).show(); 
       } 
      }}; 
     } 

當我在模擬器上運行此 - 我得到的吐司 - 「無電子郵件客戶端上安裝」,這是完全正常的,因爲仿真器沒有的電子郵件客戶端。但是,由於我的手機上有默認的電子郵件客戶端和Gmail,因此它在我的設備上可以正常工作。

但是,因爲我正在開發的Android 2.3.3 +
做所有Android設備與android 2.3.3。有一個默認的郵件客戶端? 如果他們這樣做,我可以保持當前的功能,而不必自己做客戶端。

這^是我原來的問題,但尋找到-I意味着要問模擬器後現在:

不要與2.3.3 SDK的所有Android設備都有建立一個電子郵件客戶端的選項?

謝謝你的幫助!

+0

展望更多的模擬器 - 我可以看到你可以在電子郵件選項上設置電子郵件客戶端。看到這個之後我稍微編輯了我的問題。 – ryvianstyron

+0

簡答:沒有。 –

回答

2

絕對沒有辦法保證所有運行特定android版本的設備都會有一個電子郵件客戶端。它是開源構建(電子郵件應用程序)的一部分,但這並不是說有人沒有定製它並刪除了該應用程序。假設它在那裏可能是安全的,但是你真正應該做的就是優雅地失敗並向用戶顯示一個錯誤,要麼說你的應用程序需要一個電子郵件應用程序(如果是)或者說這個功能被禁用,因爲沒有電子郵件應用程序當下。另一種辦法是給他們提供一個鏈接,從市場下載應用程序等

邊注:模擬器實際上確實有一個電子郵件應用程序,它可能只是沒有被配置爲處理message/rfc822意圖。

+0

謝謝你的建議,使其失敗優雅! – ryvianstyron

相關問題