Android 无法使用Google Music Uri找到音频文件的路径

Android 无法使用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

嘿,朋友们,我有个问题,我在后台使用以下方法来获取音频文件的路径:

'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/audio

        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如果您找到任何解决方案,我也会遇到同样的问题,所以请向我表示感谢