2012年3月25日日曜日

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);
}
}
}
}

0 件のコメント:

コメントを投稿