着信音を司るクラスが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);
}
}
}
}
0 件のコメント:
コメントを投稿