2016-10-15 8 views
-2

私はアンドロイド開発の初心者です。これは私のアプリケーションのための私のコードです。私はボタンを初期化してアプリの意図を電子メールで送信しようとしていますが、機能していません。私は以下のファイルを共有しました。助けてください。電子メールインテントを実行していないボタン

Androidのマニフェスト

<activity android:name=".ordernow" android:label="Order Details"> 
    <intent-filter> 
     <action android:name="android.intent.action.SENDTO" /> 
     <data android:scheme="mailto" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 

</activity> 

activity_ordernow.xmlレイアウト

<Button 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:textAllCaps="true" 
    android:id="@+id/email_form" 
    android:text="Get Quote" 
    android:onClick="getQuote" /> 

Ordernow.java

public void getQuote (View view){ 

     String addresses = "[email protected]"; 
     String subject = "Get Quote Online"; 
     String body = "This is the body text for me"; 

     //Compose email to send to Intraline 
     Intent intent = new Intent(Intent.ACTION_SENDTO); 
     //For only email apps to handle the information Also Experiment about using whatsapp 
     intent.setData(Uri.parse("mailto:")); 
     intent.putExtra(Intent.EXTRA_EMAIL, addresses); 
     intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
     intent.putExtra(Intent.EXTRA_TEXT, body); 
     if (intent.resolveActivity(getPackageManager()) != null) { 
      startActivity(intent); 
     } 

} 

私はqlitchを見つける助けてください。コードの正しい行を持つgithubからの良い要点は、説明の他に説明されるでしょう。

+0

それは何」、**詳細に**、説明してください意味しない。 – CommonsWare

+0

@commonsWare私は電子メールアプリケーションを開くことができません。アプリケーションは分解する。エラー:サーフェス0x7f593eca4200、error-EGL_SUCCESSにEGL_SWAP_BEHAVIORを設定できませんでした。実際、アプリケーションはステータスを変更せずに何度も何度も自分のアクティビティを繰り返し実行します。 – omukiguy

答えて

0

The App breaks down.

アプリがクラッシュしている場合は、use LogCat to examine the Java stack trace associated with the crashです。

In fact the app just runs my activity over and over again without changing the status

まず、ordernow<activity>要素から<intent-filter>を取り除きます。あなたがと書いている場合は、<intent-filter>が適切です。

その時点で、ボタンをクリックしても何も起こらないことがあります。これは、mailto:Uriの場合はACTION_SENDTOをサポートするアプリが端末にないことを示しています。メールクライアントをインストールまたは設定する必要があるかもしれません。

+0

を削除すると、エミュレータ画面でUnsupported actionというメッセージが表示され、アプリケーションがクラッシュします。 私はアンドロイドを実行しています。FYI – omukiguy

+0

ありがとうございます<インテントフィルター>除去は魅力的でした。エミュレータにメールボックスを設定するだけでした。 – omukiguy

+0

@omukiguy:有効なアカウントが設定されるまで、メールアプリケーションは 'mailto:'のような活動を有効にしません。結局のところ、アカウントがなければ、 'mailto:'アクティビティは実際に何もできません。 – CommonsWare

0

最終コードは次のようになります。

activity_ordernow.xmlレイアウト

<Button 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:textAllCaps="true" 
    android:id="@+id/email_form" 
    android:text="Get Quote" 
    android:onClick="getQuote" /> 

Ordernow.java

public void getQuote (View view){ 

     String addresses = "[email protected]"; 
     String subject = "Get Quote Online"; 
     String body = "This is the body text for me"; 

     //Compose email to send to Intraline 
     Intent intent = new Intent(Intent.ACTION_SENDTO); 
     //For only email apps to handle the information Also Experiment about using whatsapp 
     intent.setData(Uri.parse("mailto:")); 
     intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); 
     intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
     intent.putExtra(Intent.EXTRA_TEXT, body); 
     if (intent.resolveActivity(getPackageManager()) != null) { 
      startActivity(intent); 
     } 

} 
関連する問題