Three.jsを使って、作ってみた

プログラミング関連の事を色々書いています(^^) 週末はレストランやコンビニのお菓子のことを書いています。

android 着信音を取得する RingtoneManager

今回は、androidの着信音を取得する方法を書きます。


たまに、設定している着信音を取得したい時があると思います。本当に、たまにですけどね(笑)

で、RingtoneManagerを使えば、現在設定している着信音を取得できます。


それでは、取得する方法を書いていきます。

 Ringtone myRingtone;

 Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
 myRingtone = RingtoneManager.getRingtone(getApplicationContext(), uri);
 
 Log.v("着信音","着信音は、" + myRingtone);

実行結果(エミュレータで実行)
f:id:gupuru:20140506232057p:plain

このようにすると取得できます。

着信音のタイトルだけを取得したい場合は、このようにします。

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)」の部分を下のように変更すると取得できる内容を変更できます。

  • TITLE_COLUMN_INDEX・・・タイトル
  • URI_COLUMN_INDEX・・・URI
  • ID_COLUMN_INDEX・・・Cursorの中の行番号

こちら↓の部分は、取得した一覧の1番目の着信音を取得しています。

  myRingtone = ringtoneManager.getRingtone(1);

例えば、一覧の3番目の着信音を取得する場合は、「getRingtone(2)」とすれば大丈夫なはずです。(0から始まるので、注意が必要です。)

あと、取得した数以上の値を指定したらエラーが出ます。
例えば、20個取得して、「getRingtone(25)」としたら、エラーがでます。



着信音の取得は、こんな感じです。
これで、終わります。


参考サイト
Ringtone | Android Developers
RingtoneManagerを使って着信音を取得する | Tech Booster