Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android上访问SD卡上的文件_Android_Sd Card_Filepath - Fatal编程技术网

在android上访问SD卡上的文件

在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.

我是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.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安装在计算机上不会让手机访问它。根目录在不同的设备上可能不同。