如何通过android中的电子邮件意图从SD卡发送.apk文件?

时间:2014-08-28 06:18:24

标签: android email android-intent

我想通过电子邮件意图从sdcard发送.apk文件,但没有获得附件。

请参阅下面的代码尝试此代码但不适合我...

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setType("text/plain");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
            new String[] { "email id" });
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
            "Test Subject");
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
            "go on read the emails");
    Log.v(getClass().getSimpleName(),
            "sPhotoUri=" + Uri.parse("file:/" + "/sdcard/obb/rr.apk"));
    emailIntent.putExtra(Intent.EXTRA_STREAM,
            Uri.parse("file:/" + "/sdcard/obb/rr.apk"));
    startActivity(Intent.createChooser(emailIntent, "Send mail..."));

此代码表示无法附件,也无法收到邮件。

3 个答案:

答案 0 :(得分:3)

尝试更改附件类型,如下所示:

         emailIntent.setType("application/zip");

答案 1 :(得分:1)

感谢您的帮助,我收到了这封邮件。

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    emailIntent.setType("*/*");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"email id"}); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Test Subject"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "From My App new 1"); 
    emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/rr.apk"));
    startActivity(Intent.createChooser(emailIntent, "Send mail..."));

答案 2 :(得分:0)

不要使用硬编码/sdcard/,不能保证SD卡具有该路径

改为改变

emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/" + "/sdcard/obb/rr.apk"));

Uri fileUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separatorChar + "obb" + File.separatorChar + "rr.apk"));
emailIntent.putExtra(Intent.EXTRA_STREAM, fileUri);

同时更改

emailIntent.setType("text/plain");

emailIntent.setType("application/zip");