相关疑难解决方法(0)

814
推荐指数
15
解决办法
90万
查看次数

Android:从内容URI获取文件URI?

在我的应用程序中,用户将选择应用程序随后处理的音频文件.问题是,为了让应用程序按照我想要的方式处理音频文件,我需要URI为文件格式.当我使用Android的原生音乐播放器在应用程序中浏览音频文件时,URI是一个内容URI,如下所示:

content://media/external/audio/media/710
Run Code Online (Sandbox Code Playgroud)

但是,使用流行的文件管理器应用程序Astro,我得到以下内容:

file:///sdcard/media/audio/ringtones/GetupGetOut.mp3
Run Code Online (Sandbox Code Playgroud)

后者对我来说更容易使用,但当然我希望应用程序具有用户选择的音频文件的功能,而不管他们用来浏览他们的集合的程序.所以我的问题是,有没有办法将content://样式URI转换为file://URI?否则,你会建议我解决这个问题?以下是调用选择器的代码,供参考:

Intent ringIntent = new Intent();
ringIntent.setType("audio/mp3");
ringIntent.setAction(Intent.ACTION_GET_CONTENT);
ringIntent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(ringIntent, "Select Ringtone"), SELECT_RINGTONE);
Run Code Online (Sandbox Code Playgroud)

我使用内容URI执行以下操作:

m_ringerPath = m_ringtoneUri.getPath();
File file = new File(m_ringerPath);
Run Code Online (Sandbox Code Playgroud)

然后用所述文件做一些FileInputStream.

android uri file

109
推荐指数
6
解决办法
12万
查看次数

android:从uri获取真正的路径

我想将文件发送到服务器,我需要从uri获得真正的路径.

我的代码:

public String getPathFromURI(Context context, Uri contentUri) {
    if ( contentUri.toString().indexOf("file:///") > -1 ){
        return contentUri.getPath();
    }

    Cursor cursor = null;
    try { 
        String[] proj = { MediaStore.Images.Media.DATA };
        cursor = context.getContentResolver().query(contentUri,  proj, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }finally {
          if (cursor != null) {
              cursor.close();
          }
    }
}
Run Code Online (Sandbox Code Playgroud)

和onActivityResult:

...
imageName = data.getData();
imagePath = getPathFromURI(getBaseContext(),imageName);

Picasso.with(getBaseContext()).load(imageName).into(imageView);
...
Run Code Online (Sandbox Code Playgroud)

如何在ImageView中显示图像,但imagePath总是为空?:) 谢谢

编辑:

我如何将图像发送到服务器

HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost …
Run Code Online (Sandbox Code Playgroud)

android

4
推荐指数
1
解决办法
5053
查看次数

标签 统计

android ×2

bytearray ×1

file ×1

inputstream ×1

java ×1

uri ×1