MEDIA PLAYER で実用的に RINGTONES を再生する作業を行っています。これに先立って、すべての RINGTONES 絶対パスを SQLite DB に保存しました。着信音を再生する必要があるときは、DB からパスを取得して URI に変換し、着信音を再生する必要がありますが、以下のコードの 2 行目で NULL POINTER EXCEPTION が発生しています。
    Uri u = Uri.parse(soundpath);
    player = MediaPlayer.create(this, u);
    Context con  =getApplicationContext();
    player.setWakeMode(con,PowerManager.PARTIAL_WAKE_LOCK);
    player.setVolume(1f, 1f);
    player.start();
デバッグ時に、変数soundpathの値を/content:/media/internal/audio/media/23として取得します
私に提案してください。
EDITED : すべての着メロを HASHMAP に保存するために使用されるコード
 Ringtone ringtone = ringtoneMgr.getRingtone(currentPosition);
                System.out.println(ringtone.getTitle(this));
                File uripath=new File(ringtoneMgr.getRingtoneUri(currentPosition).toString());
   Toast.LENGTH_LONG).show();
                ringtonemap.put(ringtone.getTitle(this), uripath.getAbsolutePath());
                arraylist.add(ringtone.getTitle(this));