我正在尝试从Android手机上的应用程序向其他设备发送文件(它们可能是也可能不是Android手机)。
我发送文件的完整代码是:
try{
File dir = getCacheDir();
File f;
try {
f = File.createTempFile("card", ".Xcard", dir);
Intent i = new Intent();
i.setAction(Intent.ACTION_SEND);
i.setType("*/*");
i.putExtra(i.EXTRA_STREAM, Uri.fromFile(f));
startActivity(i);
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}catch(Exception e){
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show();
}
但是我的文件没有被发送到手机? 代码有什么问题? 是因为接收电话无法识别我的“.Xcard”文件吗?
但我认为这不是问题所在 因为我尝试将“apk”文件发送到其他设备并收到它即使它不理解apk文件。 (我正在尝试使用非Android手机)。
那为什么我发送的文件没有被发送?是因为它是在Cache目录中创建的?
答案 0 :(得分:0)
这对我有用:
String root = Environment.getExternalStorageDirectory().toString();
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/html");
File f = new File(root + "/bluetooth/test2.html");
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
startActivity(Intent.createChooser(i, "Send page"));
区别在于在蓝牙目录中创建文件。