我遇到此代码的问题,不知何故我无法将图片附加到电子邮件中。
package com.example.video.MenuItems;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.video.R;
public class Appointment extends AppCompatActivity {
private static final int PICK_FROM_GALLERY = 101;
EditText etEmail,etSubject,etMessage;
TextView tvAttachment;
String email;
String subject;
String message;
Uri URI = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_appointment);
etEmail = findViewById(R.id.etTo);
etSubject = findViewById(R.id.etSubject);
etMessage = findViewById(R.id.etMessage);
tvAttachment = findViewById(R.id.tvAttachment);
Button attachment = findViewById(R.id.btAttachment);
attachment.setOnClickListener(v -> openFolder());
Button Sent = findViewById(R.id.btnSenTemail);
Sent.setOnClickListener(v -> sendEmail());
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK) {
URI = data.getData();
tvAttachment.setText(URI.getLastPathSegment());
tvAttachment.setVisibility(View.VISIBLE);
}
}
public void sendEmail() {
try {
email = etEmail.getText().toString();
subject = etSubject.getText().toString();
message = etMessage.getText().toString();
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setData(Uri.parse("mailto:"));
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"klavia3000@gmail.com"});
intent.putExtra(Intent.EXTRA_SUBJECT,subject);
intent.putExtra(Intent.EXTRA_TEXT,message);
intent.setType("message/rfc822");
startActivity(Intent.createChooser(intent, "Choose your Email"));
if (URI != null) {
emailIntent.putExtra(Intent.EXTRA_STREAM, URI);
}
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
this.startActivity(Intent.createChooser(emailIntent, "Sending email..."));
} catch (Throwable t) {
Toast.makeText(this, "Request failed try again: "+ t.toString(), Toast.LENGTH_LONG).show();
}
}
public void openFolder() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_GALLERY);
}
}