Android開発-着信音の選択と再生-
Androidで着信音の選択と取得と再生と
着信音を司るクラスがRingtoneManagerやRingtoneだっていうのは
楽勝でわかったけど、
どの着信音を選択したかを取得するかが難しかった
でもこれを読んだらぜんぜん簡単だった。
http://groups.google.co.jp/group/android-developers/browse_thread/thread/7820575ad844377f
作ったソースを晒します。
package com.tomorrowkey.android.test; import android.app.Activity; import android.content.Intent; import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private final static int REQUEST_CODE_RINGTONE_PICKER = 1; Ringtone ringtone; Button btnPlay; Button btnStop; Button btnSelectRingtone; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //再生ボタン btnPlay = (Button)findViewById(R.id.Button01); btnPlay.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { ringtone.play(); } }); //停止ボタン btnStop = (Button)findViewById(R.id.Button02); btnStop.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { ringtone.stop(); } }); //着信音選択ボタン btnSelectRingtone = (Button)findViewById(R.id.Button03); btnSelectRingtone.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); startActivityForResult(intent, REQUEST_CODE_RINGTONE_PICKER); } }); //通常の着信音を選択する Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); ringtone = RingtoneManager.getRingtone(this, uri); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ if(requestCode == REQUEST_CODE_RINGTONE_PICKER ){ if(resultCode == RESULT_OK){ Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); ringtone = RingtoneManager.getRingtone(this, uri); } } } }