Android 无法使用Google Music Uri找到音频文件的路径
嘿,朋友们,我有个问题,我在后台使用以下方法来获取音频文件的路径: 'String[]proj={MediaStore.MediaColumns.DATA,MediaStore.Audio.Audio.Media.ARTIST,MediaStore.Audio.Media.ALBUM,MediaStore.Audio.Media.ALBUM_ID,MediaStore.Audio.Media.DURATION}; Uri gMusicUri=Uri.parse(“content://com.google.android.music.MusicContent/audio");//content://com.google.android.music.MusicContent/audioAndroid 无法使用Google Music Uri找到音频文件的路径,android,Android,嘿,朋友们,我有个问题,我在后台使用以下方法来获取音频文件的路径: 'String[]proj={MediaStore.MediaColumns.DATA,MediaStore.Audio.Audio.Media.ARTIST,MediaStore.Audio.Media.ALBUM,MediaStore.Audio.Media.ALBUM_ID,MediaStore.Audio.Media.DURATION}; Uri gMusicUri=Uri.parse(“content://com.go
Log.d("onCreate(): XX gMusicUri = %s",""+ gMusicUri);
Cursor cursor = context.getContentResolver().query(gMusicUri, proj, null, null, null);
if (cursor == null) {
// query failed, handle error.
Log.w("onCreate(): XX cursor is null"," query failed");
} else if (!cursor.moveToFirst()) {
// no media on the device
Log.w("onCreate(): XX cursor cannot move to 1st element"," no media on device");
} else {
int idColumn = cursor.getColumnIndex(MediaStore.Audio.Media._ID);
int titleColumn = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int artistColumn = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
int albumColumn = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM);
int durationColumn = cursor.getColumnIndex(MediaStore.Audio.Media.DURATION);
int albumColumnId = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
int path = cursor.getColumnIndex(MediaStore.MediaColumns.DATA);
do {
long id = cursor.getLong(idColumn);
String title = cursor.getString(titleColumn);
String artist = cursor.getString(artistColumn);
String album = cursor.getString(albumColumn);
String albumID = cursor.getString(albumColumnId);
String durID = cursor.getString(durationColumn);
try {
String Path=getPath(context, gMusicUri);
// int idpath = cursor.getColumnIndex(MediaStore.MediaColumns.DATA);
Log.d("Id path is this", "=="+Path);
// String songPath = cursor.getString(idpath);
//Log.w("path"+titleColumn+","+artistColumn+","+albumColumn+","+durationColumn, "" +albumColumnId);
} catch (Exception e) {
// TODO: handle exception
}
// ...process entry...
Log.i("onCreate(): XX id = %d, title = %s, artist = %s",""+ id + title + artist + "---" +album + albumID + "---"+durID);
} while (cursor.moveToNext());
}
cursor.close();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
Log.d("Error", "illegel");
e.printStackTrace();
}'
当我试图通过一些异常获取路径时,
Uri
不一定是文件
:使用openInputStream()
和getType()
在ContentResolver
上使用Uri
.java.lang.IllegalArgumentException:Invalid column\u data Sir我仍然收到了与您在文章中提到的相同的错误Sir我们在开放流中尝试了这一点,现在我们得到了以下错误java.io.FileNotFoundException:/内容:/com.google.android.music.MusicContent/audio:open失败:enoint(没有这样的文件或目录)如果我们尝试使用内容解析器,它会出现以下异常java.lang.IllegalArgumentException:Invalid column\u dataHey efroze如果您找到任何解决方案,我也会遇到同样的问题,所以请向我表示感谢