android 着信音を取得する RingtoneManager
今回は、androidの着信音を取得する方法を書きます。
たまに、設定している着信音を取得したい時があると思います。本当に、たまにですけどね(笑)
で、RingtoneManagerを使えば、現在設定している着信音を取得できます。
それでは、取得する方法を書いていきます。
Ringtone myRingtone; Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); myRingtone = RingtoneManager.getRingtone(getApplicationContext(), uri); Log.v("着信音","着信音は、" + myRingtone);
実行結果(エミュレータで実行)
このようにすると取得できます。
着信音のタイトルだけを取得したい場合は、このようにします。
myRingtone.getTitle(getApplicationContext() ) ;
//使用例: Log.v("着信音","着信音は、" + myRingtone.getTitle(getApplicationContext() ) );
また、「RingtoneManager.TYPE_RINGTONE」の部分を変更すると、「通知音」や「アラーム音」も取得できます。
- TYPE_RINGTONE・・・着信音
- TYPE_NOTIFICATION・・・通知音
- TYPE_ALARM・・・アラーム音
//着信音 Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); //通知音 Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); //アラーム音 Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
取得した着信音などは、再生することもできます。
再生には「play()」、停止には「stop()」を使います。
Ringtone myRingtone; Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); myRingtone = RingtoneManager.getRingtone(getApplicationContext(), uri); //再生 myRingtone.play(); //停止 myRingtone.stop();
最後に、着信音の一覧を取得する方法を書きます。
こんな感じにやります↓
RingtoneManager ringtoneManager = new RingtoneManager(getApplicationContext()); Cursor cursor = ringtoneManager.getCursor(); while (cursor.moveToNext()) { Log.v("着信音たち", "タイトル: " + cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX)); } myRingtone = ringtoneManager.getRingtone(1);//1番目を取得
「RingtoneManager.TITLE_COLUMN_INDEX)」の部分を下のように変更すると取得できる内容を変更できます。
こちら↓の部分は、取得した一覧の1番目の着信音を取得しています。
myRingtone = ringtoneManager.getRingtone(1);
例えば、一覧の3番目の着信音を取得する場合は、「getRingtone(2)」とすれば大丈夫なはずです。(0から始まるので、注意が必要です。)
あと、取得した数以上の値を指定したらエラーが出ます。
例えば、20個取得して、「getRingtone(25)」としたら、エラーがでます。
着信音の取得は、こんな感じです。
これで、終わります。
参考サイト
Ringtone | Android Developers
RingtoneManagerを使って着信音を取得する | Tech Booster