android - 使用android意图时电子邮件附件为空白
问题描述
我需要使用我的应用程序通过邮件发送附件以及一些基本信息。但是当我尝试使用意图调用邮件活动时,附件是空白的。
这是获取文件路径然后发送附件的代码
public class Pickafile extends AppCompatActivity {
TextView textFile;
static String FilePath;
private static final int PICKFILE_RESULT_CODE = 1;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gallery);
Button buttonPick = (Button) findViewById(R.id.buttonpick);
Button bp = (Button) findViewById(R.id.proceed);
textFile = (TextView) findViewById(R.id.textfile);
buttonPick.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent, PICKFILE_RESULT_CODE);
}
});
bp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
//intent.setType("text/plain");
intent.setData(Uri.parse("mailto:"));
intent.putExtra(Intent.EXTRA_SUBJECT, " Report Particulars for " + MainActivity.name);
/*File root = Environment.getExternalStorageDirectory();
File file = new File(root, FilePath);
if (!file.exists() || !file.canRead()) {
return;
}*/
/*if(FilePath!=null)
{
intent.putExtra(Intent.EXTRA_STREAM, FilePath);
}*/
intent.putExtra(Intent.EXTRA_TEXT, MainActivity.testfunc());
intent.putExtra(Intent.EXTRA_STREAM, FilePath);
//startActivity(Intent.createChooser(intent, "Pick an Email provider"));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
switch (requestCode) {
case PICKFILE_RESULT_CODE:
if (resultCode == RESULT_OK) {
FilePath = data.getData().getPath();
textFile.setText(FilePath);
}
break;
}
}
}
testfunc() 用于获取邮件正文(姓名、年龄、电话等)
提前致谢!
解决方案
如果有任何错误,您应该检查日志。可能的情况: 1. 文件太大,超过电子邮件附件的最大大小(Gmail 为 20Mb) 2. 如果文件保存在外部存储中,则缺少 READ_EXTERNAL_STORAGE 权限。3.清单中缺少file_provider
推荐阅读
- laravel - 我想使用 Api 获取经过身份验证的用户订单详细信息我正在为移动开发者开发 api
- java - Why is my code not printing anything? Is there something wrong with my loops?
- javascript - 在 Node Selenium 中构建 WebDriver 后,配置的 ChromeDriver 功能丢失
- python - 尝试将图像添加到 python tkinter 时出现错误
- python - 用于开始和结束的 Python 脚本
- powershell - 有人可以帮我制作这个 PowerShell Recursive
- python - 我应该将我的 config.ini 文件复制到 Windows 机器的哪里?
- python - 我是 python 的新手,但我如何获得降水、温度、风阵风和湿度的第一个值?
- javascript - 带有随机文本和 Img 的 Js 间隔
- c# - CS1929 - 列表
不包含 Where() 的实现(使用 System.Linq)