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));