在android上访问SD卡上的文件
我是Android开发新手。我正试图使用以下代码通过gmail发送一封关于我的摩托罗拉里程碑的电子邮件在android上访问SD卡上的文件,android,sd-card,filepath,Android,Sd Card,Filepath,我是Android开发新手。我正试图使用以下代码通过gmail发送一封关于我的摩托罗拉里程碑的电子邮件 Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.setType("audio/mp3"); sendIntent.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/king1.mp3"); sendIntent.putExtra(Intent.
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("audio/mp3");
sendIntent.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/king1.mp3");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
sendIntent.putExtra(Intent.EXTRA_TEXT, "this is the email content2");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/king1.mp3"));
startActivity(Intent.createChooser(sendIntent, "Title:"));
运行代码会发送电子邮件,但发送的附件为0kb。我在internet的其他地方看到过这个问题,但我不确定是否声明了文件的正确路径。我如何知道文件的确切路径?如果我挂载它,我得到的路径是/Volumes/NO NAME/king1.mp3
或
我需要先使用fileinputstream读取文件吗
非常感谢你 试试看
Environment.getExternalStorageDirectory()
要获取sd卡的根目录,请尝试
Environment.getExternalStorageDirectory()
获取sd卡的根。@sanna是正确的,您应该使用,但是,我建议首先使用来确定您是否能够访问存储-例如,在您的示例中,当sd卡安装在PC上时。@sanna是正确的,您应该使用,我建议首先使用来确定您是否能够访问存储—例如,在您的示例中,当SD卡安装在PC上时。在我的设备上,外部SD数据位于另一个名为“external_SD”的目录中。Environment.getExternalStorageDirectory()提供sd卡的根目录,但如果您从计算机将数据放置在设备上,它可能位于“file://”+Environment.getExternalStorageDirectory()+“/external\u sd/”中
这只有在设备上使用“我的文件”应用程序时才明显,通过USB安装到计算机上时,外部sd目录级别不明显。在我的设备上,外部sd数据位于另一个名为“外部sd”的目录中。Environment.getExternalStorageDirectory()提供sd卡的根目录,但如果您从计算机将数据放置在设备上,它可能位于“file://”+Environment.getExternalStorageDirectory()+“/external\u sd/”中
这只有在使用设备上的“我的文件”应用程序时才明显,通过USB安装到计算机上时,外部目录级别不明显。哦,谢谢,让它工作:)原来根确实是/sdcard,但是我发现将sdcard安装在计算机上不会让手机访问它。根在不同的设备上可能不同。哦,谢谢,让它工作:)原来根目录确实是/sdcard,但是我发现将sdcard安装在计算机上不会让手机访问它。根目录在不同的设备上可能不同。