0

アプリケーションの電子メール(G-mail)を開く必要があり、いくつかのPDFに添付する必要があります

PDFは、アプリケーションによって作成されたフォルダーにあります。フォルダはSDカードに作成されていません。

タブレットにSDカードがありません。タブレットにSDカードがありません。タブレットにSDカードがありません。

これらのPDFを電子メールで送信する方法は?

if(android.os.Environment.getDataDirectory().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getDataDirectory(),"MyAPP");



//String FILENAME = "testejan1.pdf";
//String string = "hello world!";



//File file = new File (Environment.getDataDirectory().getPath(), "/MyAPP/"+"testejan1.pdf");
//Uri path = Uri.fromFile(file);

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("application/pdf");
//shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "flip_novidade@hotmail.com" });
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Material de apoio do mês de " + mesclicado);
shareIntent.putExtra(Intent.EXTRA_TEXT, "Você esta recebendo um super material de visitação médica");
//shareIntent.setDataAndType(path, "application/pdf"); 
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///MyAPP/"+"testejan1.pdf"));
//shareIntent.setType("file/*");
startActivity(shareIntent);
4

2 に答える 2

0
i.setType("application/pdf");
 i.putExtra(Intent.EXTRA_STREAM, Uri.parse("pdf path"));
于 2013-01-16T13:31:01.910 に答える
0

あなたのコードのほとんどは正しく見えます。2つのこと:

MODE_WORLD_READABLEアプリのローカル ファイル システムに PDF ファイルを作成するときは、フラグを付けて作成する必要があります。これは、他のアプリケーションが PDF を開くことができるようにするために必要です。

次にUri.fromFile、ファイルへの Android URI を取得するために使用します (これはコメント付きのコードにあります)。

MODE_WORLD_WRITEABLEデバイス上のすべてのアプリが PDF ファイルにアクセスできるため、これはセキュリティ対策として不十分であると考えられていることに注意してください。より良い解決策はContentProvider、URI を作成して使用しcontent:、PDF データを外部アプリケーションに提供することです。これにより、PDF ファイルの個々のロードに対するアクセスを許可するか拒否するかを制御できます (ただし、もう少し手間がかかります)。

于 2013-01-16T13:47:06.593 に答える