如何获取存储在Sdcard - Android中的文件的绝对路径

时间:2014-10-13 06:54:48

标签: android android-intent android-sdcard

我正在尝试使用意图发送彩信。

这是我的代码:

private void sendMmsUsingIntent() throws Exception
{
    Intent sendIntent = new Intent(Intent.ACTION_SEND);
    sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
    sendIntent.putExtra("address", "1213123123");
    sendIntent.putExtra("sms_body", "some text"); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/DCIM/Camera/logo.png"));
    sendIntent.setType("image/png");

    //startActivity(sendIntent);
    startActivity(Intent.createChooser(sendIntent,"MMS"));                        
}

我上面的代码我已经硬编码了一个文件名(logo.png ),我想删除这个依赖可以任何人请高手帮我怎么做?

我想在sdcard卡中的某个位置更改它,无论媒体文件是否可用,我都可以随机选择一个。

我跟随下面一个但是无法取得成功

'How to display files on the SD card in a ListView?'

谢谢

1 个答案:

答案 0 :(得分:1)

我不确定你到底需要什么,但这里有几个选择。

1)如果您需要外部目录文件夹,请使用环境 getExternalStorageDirectory()方法。

2)如果您需要默认的ImageDirectory,请使用环境 getExternalStoragePublicDirectory()方法并将DIRECTORY_DCIM作为参数传递

检查http://developer.android.com/reference/android/os/Environment.html

修改

一旦你有了外部目录的路径,就这样做:

File f=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File[] allFiles=   f.listFiles(); //All files and folder
for (int i = 0; i < allFiles.length; i++) {
      if (allFiles[i].isFile()) {
        //Do what you want
      } 
    }