2014-09-24 88 views

回答

2

没有规定一个UrionActivityResult()返回是可以直接访问文件。 A Uri is not necessarily a File

请使用openInputStream()ContentResolver获取所代表的数据的InputStream

+0

我需要发布一个音频文件到服务器。如何使用openInputStrem()请张贴一些代码 – 2014-09-26 15:11:53

0

试试这个..

Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
      i.setType("audio/*"); 
      startActivityForResult(i, GET_MP3); 

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == RESULT_OK) { 
      if (requestCode == GET_MP3) { 
Uri selectedmp3 = data.getData(); 
       mp3_path = getpathmp3(selectedmp3); 
} 

private String getpathring(Uri path) { 
     String result; 
     Cursor cursor = getContentResolver() 
       .query(path, null, null, null, null); 
     if (cursor == null) { 
      result = path.getPath(); 
      int name = result.lastIndexOf("/"); 
      mp3_name = result.substring(name + 1); 
     } else { 
      cursor.moveToFirst(); 
      int idx = cursor.getColumnIndex(MediaStore.Audio.Media.DATA); 

      result = cursor.getString(idx); 
      cursor.close(); 
      int name = result.lastIndexOf("/"); 
      mp3_name = result.substring(name + 1); 
     } 
     return result; 
    } 

的mp3_path是尝试此方法后,你会get..tell我的路..

+0

它显示光标错误 - “请确保光标在从它访问数据前正确初始化...” – 2014-09-26 14:09:33

+0

你可以自己做,我刚才提到了一种方法来解决你的问题,它是否工作? – 2014-09-26 16:06:43

相关问题