着信音一覧への登録に関して

1,140 views
Skip to first unread message

rinda

unread,
Apr 26, 2012, 2:11:32 AM4/26/12
to 日本Androidの会
rindaと申します。質問失礼致します。

現在 rawフォルダ内に格納されているmp3ファイルを着信音として登録するアプリを作成しているのですが
登録した着信音が設定画面の着信音一覧に出すことができずに困っております。

RingtoneManagerのsetActualDefaultRingtoneUriメソッドを使うことにより
着信音への登録はできました。(実際に音を鳴らしてみて確認しました。)
しかし、着信音一覧にはプリセットの物が表示されるだけで、アプリから設定したmp3ファイルが表示されません。

対応策をご存知の方、お手数ですがお教え頂けないでしょうか。

結城 栽培

unread,
Apr 26, 2012, 2:27:13 AM4/26/12
to android-g...@googlegroups.com
こんにちは。結城栽培ともうします。

まだ勉強中の身ですが、私も同じような所で迷ったことがあるので
何かの助けになればと思いソースコードを載せさせて頂きます。

以下のソースはPreferenceActivityにおいて着信音(と言うよりは通知音なのですが)を取得する時のソースです。
設定画面で通知音を設定し、そのタイトルを一部Stringで取り出す予定があったため一度配列に入れております。

        RingtoneManager ringtoneManager = new RingtoneManager(getApplicationContext());
        ringtoneManager.setType(RingtoneManager.TYPE_NOTIFICATION);
        Cursor cursor = ringtoneManager.getCursor();
        ArrayList<String> tmpIndex = new ArrayList<String>();
        ArrayList<String> tmpName = new ArrayList<String>();

        while (cursor.moveToNext()) {
            tmpIndex.add(cursor.getString(RingtoneManager.ID_COLUMN_INDEX));
            tmpName.add(cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX));
        }

これを
            ListPreference listPreference = new ListPreference(this);
            listPreference.setEntries(entries);
            listPreference.setEntryValues(entVals);
に各自セットしたものをaddPreferenceすることで私の要求を実現することができました。

なぜプリセットのものしか出ないのかは私もわからずこの方法を取りました。
着信音としての登録ができているのであればこのやり方で呼び出すことも出来ると思います。

先日このグループに加入したばかりでこのように返信しても良いのかわかりませんでしたが、
参考になれば幸いです。



2012年4月26日木曜日 15時11分32秒 UTC+9 rinda:

rinda

unread,
Apr 26, 2012, 2:46:16 AM4/26/12
to 日本Androidの会
rindaです。わざわざお答え頂き誠にありがとうございます!!

非常に興味深い回答を頂いたのですが
残念ながら私が直面している問題とは違うようです。。

というのも私が言っている着信音リストとは、自前のリストの事ではなく
android端末本体の設定画面にて表示されるリストのことだからです。

たいがい
メニューボタン→設定→サウンド設定→着信音
などで一覧できるリストのことです。
恐らくシステムで見に行くディレクトリが決まっていて
そこに自分が作ったディレクトリを追加してあげればいいのかなと思っているのですが
如何せんやり方がわかりません。。

以上、わざわざご回答頂いたのにすみません。。

rinda

unread,
Apr 26, 2012, 2:52:25 AM4/26/12
to 日本Androidの会
結城さん

お疲れ様です。rindaです。
自分で色々調べていたところ解決しました。というのも着信音設定のときの方法がミスってました(汗

登録のときに
いったん、contentResolverのinsertメソッドで着信音ファイルを登録しないといけないのですが
その際

ContentValues values = new ContentValues();
values.put(Media.MIME_TYPE, "audio/mp3");
values.put(Media.TITLE, fileName); // タイトル名
values.put("_data", path); // 画像の保存されたフルパス
contentResolver.insert(Media.EXTERNAL_CONTENT_URI, values);

のようにしていたのですが、どうやら
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
のコードも必要だったようです。

なんとか解決できました。ありがとうございます!

結城 栽培

unread,
Apr 27, 2012, 12:12:30 AM4/27/12
to android-g...@googlegroups.com
rindaさん。

お疲れ様です、有機栽培です。

解決おめでとうございます!
問題点を履き違えていたみたいで申し訳ありませんでした。
androidは総じて音関係は気難しいですね。

ではではまたの時、宜しくお願いします!

2012年4月26日木曜日 15時52分25秒 UTC+9 rinda:
Reply all
Reply to author
Forward
0 new messages