相关疑难解决方法(0)

Gmail 5.0应用在收到ACTION_SEND意图时失败并显示"附件权限被拒绝"

我的应用程序创建带附件的邮件,并使用意图Intent.ACTION_SEND来启动邮件应用程序.

它适用于我测试过的所有邮件应用,除了新的Gmail 5.0(适用于Gmail 4.9),邮件打开时没有附件,显示错误:"附件权限被拒绝".

在logcat上没有来自Gmail的有用消息.我只测试了Android KitKat上的Gmail 5.0,但是在多个设备上.

我为附件创建了这样的文件:

String fileName = "file-name_something_like_this";
FileOutputStream output = context.openFileOutput(
        fileName, Context.MODE_WORLD_READABLE);

// Write data to output...

output.close();
File fileToSend = new File(context.getFilesDir(), fileName);
Run Code Online (Sandbox Code Playgroud)

我知道安全问题MODE_WORLD_READABLE.

我发送这样的意图:

public static void compose(
        Context context,
        String address,
        String subject,
        String body,
        File attachment) {

    Intent emailIntent = new Intent(Intent.ACTION_SEND);
    emailIntent.setType("message/rfc822");
    emailIntent.putExtra(
            Intent.EXTRA_EMAIL, new String[] { address });
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(Intent.EXTRA_TEXT, body);

    emailIntent.putExtra(
            Intent.EXTRA_STREAM,
            Uri.fromFile(attachment));

    Intent chooser = Intent.createChooser(
            emailIntent, 
            context.getString(R.string.send_mail_chooser));

    context.startActivity(chooser);
}
Run Code Online (Sandbox Code Playgroud)

在创建文件或发送意图时,我有什么问题吗?有没有更好的方法来启动带附件的邮件应用程序?或者 …

android android-intent

41
推荐指数
4
解决办法
2万
查看次数

android导出到csv并作为电子邮件附件发送

我在这个网站上看到多个线程讨论在android中发送带附件的电子邮件.我想讨论的每一个方法在这里,这里这里.

我正在通过代码创建一个csv文件并将此文件保存到android内部存储.然后我想在电子邮件中将此文件作为附件发送.嗯,电子邮件正在发送,我收到它没有附件.这就是我所做的.

String columnString         =   "\"Person\",\"Gender\",\"Street1\",\"PostOfice\",\"Age\"";
String dataString           =   "\"" + currentUser.userName +"\",\"" + currentUser.gender + "\",\"" + currentUser.street1 + "\",\"" + currentUser.poNumber.toString() + "\",\"" + currentUser.age.toString() + "\"";
String combinedString       =   columnString + "\n" + dataString;
File file                   =   new File(this.getCacheDir()+ File.separator + "Data.csv");
try {
    FileOutputStream out    =   new FileOutputStream(file);
    out.write(combinedString.getBytes());
    out.close();
} catch (IOException e) {
    Log.e("BROKEN", "Could not write file " + e.getMessage());
}   
Uri u1                      =   Uri.fromFile(file);

Intent sendIntent …
Run Code Online (Sandbox Code Playgroud)

csv email android export attachment

19
推荐指数
1
解决办法
3万
查看次数

标签 统计

android ×2

android-intent ×1

attachment ×1

csv ×1

email ×1

export ×1