我正在尝试使用SD
从Bluetooth
发送文件。我正在使用Share intent,我想从我的SD(。mp3
)发送一个文件。好的,当我打开共享菜单时,我可以将文件发送到email, dropbox, whatsapp
,但是如果我选择蓝牙,我的设备会显示一条消息“File null was not sent to ...
”
我的步骤是: 1.创建SEND意图。 2.将我的文件从res / raw复制到SD 3.将我的文件添加到putExtra 4.删除文件(是临时文件)
代码:
Intent shareIntent=new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("audio/mp3");
//Copiamos archivo a compartir en la sd
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = sonidoActual+"-temp.mp3";
File newSoundFile = new File(baseDir, fileName);
try {
byte[] readData = new byte[1024*500];
InputStream fis = getResources().openRawResource(contexto.getResources().getIdentifier(sonidoActual,"raw", contexto.getPackageName()));
FileOutputStream fos = new FileOutputStream(newSoundFile);
int i = fis.read(readData);
while (i != -1) {
fos.write(readData, 0, i);
i = fis.read(readData);
}
fos.close();
} catch (IOException io) {
}
////
shareIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse(newSoundFile.getAbsolutePath())/*Uri.parse("file:///sdcard/"+fileName)*//*Uri.parse("android.resource://com.genaut.instantbuttonsfreak/raw/"+texto)*/);
startActivity(Intent.createChooser(shareIntent,getString(R.string.share)));
//
newSoundFile.delete();
任何人都可以帮我这个吗?我读了很多但没找到工作方法,对不起我的英语。
答案 0 :(得分:0)
我认为您的文件不是File-I/O
发布的。
所以..尝试flush()
FileOutPutStream ..比如,
fos.flush();
fos.close();
然后,使用Uri.fromFile(File file)
为uri传递Intent ..但在将Uri传递给Intent之前,只需检查文件是否存在..
喜欢,
if(newSoundFile.exist())
{
shareIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(newSoundFile))
startActivity(Intent.createChooser(shareIntent,getString(R.string.share)));
newSoundFile.delete();
}