戻る
Androidのプログラムで、キーやボタンのイベントに対応したトーン音を選択したいと思っても、結構多くの組込音があってわからない。そこで、組込になっているサウンドをとりあえず聴けるプログラムを作った。まあ、自分のためだったわけだけど。対象がICONIAだったので、とりあえず、Android3.1としたが、Android2.31でもOKみたいだった。まあ、APIが対応していたら、適当なターゲットで作ってください。
SoundTestというプログラムでは101個の組込音をSQLiteに登録して、立ち上げ時点でリスト表示されますので、タップすると対応した音声がデバイスが存在していればスピーカーから流れます。ただ、ものすごくうるさい音や、いっこうに消えないものもありますので、我慢してください。だいたいが、名前を見て分かるとおり、スマホの電話トーンをエミュレートしているように思います。(2011/09/21)
定数の中には停止するまで、鳴り続けるものもありますので、リミットを指定するようにしました。デフォルトで2秒なので、適当にTTの値を変えてください。秒は1000の単位です。(2011/09/22)
ソースはページの一番下のリンクで

レイアウトはmain.xmlとlist_row.xmlがあります。main.xmlのListViewに表示する1行分をlist_row.xmlが担当しています。
main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#445566"
    android:textColor="#ffffff"
    android:id="@+id/selected"
    android:textSize="25sp"
    android:layout_margin="5sp"
    android:text="テスト音源を選択してください。"
    android:gravity="center"/>
<ListView
    android:choiceMode="singleChoice"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"

    android:divider="#777777"
    android:dividerHeight="1sp"
    android:background="#222222"
    android:id="@android:id/list"
    android:layout_marginTop="5dip"/>

</LinearLayout>



list_row.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <!-- titleを1行表示するレイアウト -->
  <TextView
    android:layout_width="50dip"
    android:layout_height="wrap_content"
    android:textSize="15sp"
    android:id="@+id/id_list"
    android:padding="5px"
    android:layout_marginLeft="5dip"
  />
  <TextView
    android:layout_width="400dip"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:id="@+id/name_list"
    android:padding="5px"
    android:layout_marginLeft="30dip"
  />
</LinearLayout>


プログラム本体(SoundTest.java)
ToneGeneratorクラスコンストラクタの引数には、
第1引数に AudioManager クラスの定数、
第2引数に音量(0~100)を指定します。

(例)
//ToneGenerator.MAX_VOLUMEは100
ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_SYSTEM,ToneGenerator.MAX_VOLUME);
//2秒間をリミットでトーン音を発生させます。
// static final int TT=2000;
tg.startTone(ToneGenerator.TONE_CDMA_ABBR_ALERT,TT);

SoundTest.java

package soundtest.syakazuka.com;

import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.media.AudioManager;
import android.media.ToneGenerator;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

public class SoundTestActivity extends ListActivity {
  static final int DB_VERSION = 1;
  private static final String DB = "sound.db";
  static final String CREATE_SOUND = "create table sound_test (" +
      "_id integer primary key autoincrement," +
      "flag," +
      "name  text );";
  static final String DROP_SOUND = "drop table sound_test;";
  static final String SQL="select * from sound_test";
  public SQLiteDatabase mDb;
  private SimpleCursorAdapter mAdapter;
  static final int TT=2000;  //2秒間をリミットでトーン音を発生させます。



  private static class CommonOpenHelper extends SQLiteOpenHelper {

    public CommonOpenHelper(Context c) {
      // データベースのファイル名とバージョンを指定
      super(c, DB, null, DB_VERSION);
    }
    // データベースを新規に作成した後呼ばれる
    @Override
    public void onCreate(SQLiteDatabase db) {
      // 内部にテーブルを作成する
      db.execSQL(CREATE_SOUND);

      db.execSQL("insert into  sound_test ( flag,name) VALUES (0,'MAX_VOLUME')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (1,'MIN_VOLUME')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (2,'TONE_CDMA_ABBR_ALERT')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (3,'TONE_CDMA_ABBR_INTERCEPT')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (4,'TONE_CDMA_ABBR_REORDER')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (5,'TONE_CDMA_ALERT_AUTOREDIAL_LITE')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (6,'TONE_CDMA_ALERT_CALL_GUARD')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (7,'TONE_CDMA_ALERT_INCALL_LITE')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (8,'TONE_CDMA_ALERT_NETWORK_LITE')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (9,'TONE_CDMA_ANSWER')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (10,'TONE_CDMA_CALLDROP_LITE')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (11,'TONE_CDMA_CALL_SIGNAL_ISDN_INTERGROUP')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (12,'TONE_CDMA_CALL_SIGNAL_ISDN_NORMAL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (13,'TONE_CDMA_CALL_SIGNAL_ISDN_PAT3')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (14,'TONE_CDMA_CALL_SIGNAL_ISDN_PAT5')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (15,'TONE_CDMA_CALL_SIGNAL_ISDN_PAT6')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (16,'TONE_CDMA_CALL_SIGNAL_ISDN_PAT7')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (17,'TONE_CDMA_CALL_SIGNAL_ISDN_PING_RING')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (18,'TONE_CDMA_CALL_SIGNAL_ISDN_SP_PRI')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (19,'TONE_CDMA_CONFIRM')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (20,'TONE_CDMA_DIAL_TONE_LITE')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (21,'TONE_CDMA_EMERGENCY_RINGBACK')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (22,'TONE_CDMA_HIGH_L')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (23,'TONE_CDMA_HIGH_PBX_L')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (24,'TONE_CDMA_HIGH_PBX_SLS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (25,'TONE_CDMA_HIGH_PBX_SS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (26,'TONE_CDMA_HIGH_PBX_SSL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (27,'TONE_CDMA_HIGH_PBX_S_X4')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (28,'TONE_CDMA_HIGH_SLS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (29,'TONE_CDMA_HIGH_SS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (30,'TONE_CDMA_HIGH_SSL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (31,'TONE_CDMA_HIGH_SS_2')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (32,'TONE_CDMA_HIGH_S_X4')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (33,'TONE_CDMA_INTERCEPT')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (34,'TONE_CDMA_KEYPAD_VOLUME_KEY_LITE')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (35,'TONE_CDMA_LOW_L')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (36,'TONE_CDMA_LOW_PBX_L')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (37,'TONE_CDMA_LOW_PBX_SLS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (38,'TONE_CDMA_LOW_PBX_SS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (39,'TONE_CDMA_LOW_PBX_SSL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (40,'TONE_CDMA_LOW_PBX_S_X4')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (41,'TONE_CDMA_LOW_SLS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (42,'TONE_CDMA_LOW_SS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (43,'TONE_CDMA_LOW_SSL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (44,'TONE_CDMA_LOW_SS_2')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (45,'TONE_CDMA_LOW_S_X4')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (46,'TONE_CDMA_MED_L')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (47,'TONE_CDMA_MED_PBX_L')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (48,'TONE_CDMA_MED_PBX_SLS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (49,'TONE_CDMA_MED_PBX_SS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (50,'TONE_CDMA_MED_PBX_SSL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (51,'TONE_CDMA_MED_PBX_S_X4')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (52,'TONE_CDMA_MED_SLS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (53,'TONE_CDMA_MED_SS')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (54,'TONE_CDMA_MED_SSL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (55,'TONE_CDMA_MED_SS_2')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (56,'TONE_CDMA_MED_S_X4')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (57,'TONE_CDMA_NETWORK_BUSY')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (58,'TONE_CDMA_NETWORK_BUSY_ONE_SHOT')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (59,'TONE_CDMA_NETWORK_CALLWAITING')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (60,'TONE_CDMA_NETWORK_USA_RINGBACK')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (61,'TONE_CDMA_ONE_MIN_BEEP')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (62,'TONE_CDMA_PIP')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (63,'TONE_CDMA_PRESSHOLDKEY_LITE')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (64,'TONE_CDMA_REORDER')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (65,'TONE_CDMA_SIGNAL_OFF')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (66,'TONE_CDMA_SOFT_ERROR_LITE')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (67,'TONE_DTMF_0')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (68,'TONE_DTMF_1')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (69,'TONE_DTMF_2')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (70,'TONE_DTMF_3')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (71,'TONE_DTMF_4')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (72,'TONE_DTMF_5')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (73,'TONE_DTMF_6')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (74,'TONE_DTMF_7')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (75,'TONE_DTMF_8')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (76,'TONE_DTMF_9')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (77,'TONE_DTMF_A')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (78,'TONE_DTMF_B')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (79,'TONE_DTMF_C')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (80,'TONE_DTMF_D')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (81,'TONE_DTMF_P')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (82,'TONE_DTMF_S')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (83,'TONE_PROP_ACK')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (84,'TONE_PROP_BEEP')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (85,'TONE_PROP_BEEP2')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (86,'TONE_PROP_NACK')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (87,'TONE_PROP_PROMPT')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (88,'TONE_SUP_BUSY')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (89,'TONE_SUP_CALL_WAITING')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (90,'TONE_SUP_CONFIRM')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (91,'TONE_SUP_CONGESTION')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (92,'TONE_SUP_CONGESTION_ABBREV')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (93,'TONE_SUP_DIAL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (94,'TONE_SUP_ERROR')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (95,'TONE_SUP_INTERCEPT')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (96,'TONE_SUP_INTERCEPT_ABBREV')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (97,'TONE_SUP_PIP')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (98,'TONE_SUP_RADIO_ACK')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (99,'TONE_SUP_RADIO_NOTAVAIL')");
      db.execSQL("insert into  sound_test ( flag,name) VALUES (100,'TONE_SUP_RINGTONE')");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // 通常は、テーブル内のデータの変換を行う
      db.execSQL(DROP_SOUND);
      onCreate(db);
    }

  }
  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        setTitles();
    }
  @Override
  protected void onResume() {
    super.onResume();
    setTitles();
  }

  private void setTitles()
  {
    CommonOpenHelper h = new CommonOpenHelper(getApplicationContext());
    mDb = h.getReadableDatabase();
    Cursor c = mDb.rawQuery(SQL,null);

    startManagingCursor(c);


    // データベースのカラムと、リストビューを関連付ける
    String[] from = new String[] { "flag","name" };

    int[] to = new int[] { R.id.id_list, R.id.name_list };
    mAdapter = new SimpleCursorAdapter(this,R.layout.list_row, c, from, to);
    setListAdapter(mAdapter);
  }

  @Override
  protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    LinearLayout ll = (LinearLayout) v;
    String d = ((TextView) ll.findViewById(R.id.id_list)).getText().toString();
    pushSound(Integer.valueOf(d).intValue());
  }

  public void pushSound(int flag)
  {
    ToneGenerator tg = new ToneGenerator(
            AudioManager.STREAM_SYSTEM,
            ToneGenerator.MAX_VOLUME);
    switch(flag){
      case 0: tg.startTone(ToneGenerator.MAX_VOLUME,TT);break;
      case 1: tg.startTone(ToneGenerator.MIN_VOLUME,TT);break;
      case 2: tg.startTone(ToneGenerator.TONE_CDMA_ABBR_ALERT,TT);break;
      case 3: tg.startTone(ToneGenerator.TONE_CDMA_ABBR_INTERCEPT,TT);break;
      case 4: tg.startTone(ToneGenerator.TONE_CDMA_ABBR_REORDER,TT);break;
      case 5: tg.startTone(ToneGenerator.TONE_CDMA_ALERT_AUTOREDIAL_LITE,TT);break;
      case 6: tg.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD,TT);break;
      case 7: tg.startTone(ToneGenerator.TONE_CDMA_ALERT_INCALL_LITE,TT);break;
      case 8: tg.startTone(ToneGenerator.TONE_CDMA_ALERT_NETWORK_LITE,TT);break;
      case 9: tg.startTone(ToneGenerator.TONE_CDMA_ANSWER,TT);break;
      case 10: tg.startTone(ToneGenerator.TONE_CDMA_CALLDROP_LITE,TT);break;
      case 11: tg.startTone(ToneGenerator.TONE_CDMA_CALL_SIGNAL_ISDN_INTERGROUP,TT);break;
      case 12: tg.startTone(ToneGenerator.TONE_CDMA_CALL_SIGNAL_ISDN_NORMAL,TT);break;
      case 13: tg.startTone(ToneGenerator.TONE_CDMA_CALL_SIGNAL_ISDN_PAT3,TT);break;
      case 14: tg.startTone(ToneGenerator.TONE_CDMA_CALL_SIGNAL_ISDN_PAT5,TT);break;
      case 15: tg.startTone(ToneGenerator.TONE_CDMA_CALL_SIGNAL_ISDN_PAT6,TT);break;
      case 16: tg.startTone(ToneGenerator.TONE_CDMA_CALL_SIGNAL_ISDN_PAT7,TT);break;
      case 17: tg.startTone(ToneGenerator.TONE_CDMA_CALL_SIGNAL_ISDN_PING_RING,TT);break;
      case 18: tg.startTone(ToneGenerator.TONE_CDMA_CALL_SIGNAL_ISDN_SP_PRI,TT);break;
      case 19: tg.startTone(ToneGenerator.TONE_CDMA_CONFIRM,TT);break;
      case 20: tg.startTone(ToneGenerator.TONE_CDMA_DIAL_TONE_LITE,TT);break;
      case 21: tg.startTone(ToneGenerator.TONE_CDMA_EMERGENCY_RINGBACK,TT);break;
      case 22: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_L,TT);break;
      case 23: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_PBX_L,TT);break;
      case 24: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_PBX_SLS,TT);break;
      case 25: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_PBX_SS,TT);break;
      case 26: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_PBX_SSL,TT);break;
      case 27: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_PBX_S_X4,TT);break;
      case 28: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_SLS,TT);break;
      case 29: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_SS,TT);break;
      case 30: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_SSL,TT);break;
      case 31: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_SS_2,TT);break;
      case 32: tg.startTone(ToneGenerator.TONE_CDMA_HIGH_S_X4,TT);break;
      case 33: tg.startTone(ToneGenerator.TONE_CDMA_INTERCEPT,TT);break;
      case 34: tg.startTone(ToneGenerator.TONE_CDMA_KEYPAD_VOLUME_KEY_LITE,TT);break;
      case 35: tg.startTone(ToneGenerator.TONE_CDMA_LOW_L,TT);break;
      case 36: tg.startTone(ToneGenerator.TONE_CDMA_LOW_PBX_L,TT);break;
      case 37: tg.startTone(ToneGenerator.TONE_CDMA_LOW_PBX_SLS,TT);break;
      case 38: tg.startTone(ToneGenerator.TONE_CDMA_LOW_PBX_SS,TT);break;
      case 39: tg.startTone(ToneGenerator.TONE_CDMA_LOW_PBX_SSL,TT);break;
      case 40: tg.startTone(ToneGenerator.TONE_CDMA_LOW_PBX_S_X4,TT);break;
      case 41: tg.startTone(ToneGenerator.TONE_CDMA_LOW_SLS,TT);break;
      case 42: tg.startTone(ToneGenerator.TONE_CDMA_LOW_SS,TT);break;
      case 43: tg.startTone(ToneGenerator.TONE_CDMA_LOW_SSL,TT);break;
      case 44: tg.startTone(ToneGenerator.TONE_CDMA_LOW_SS_2,TT);break;
      case 45: tg.startTone(ToneGenerator.TONE_CDMA_LOW_S_X4,TT);break;
      case 46: tg.startTone(ToneGenerator.TONE_CDMA_MED_L,TT);break;
      case 47: tg.startTone(ToneGenerator.TONE_CDMA_MED_PBX_L,TT);break;
      case 48: tg.startTone(ToneGenerator.TONE_CDMA_MED_PBX_SLS,TT);break;
      case 49: tg.startTone(ToneGenerator.TONE_CDMA_MED_PBX_SS,TT);break;
      case 50: tg.startTone(ToneGenerator.TONE_CDMA_MED_PBX_SSL,TT);break;
      case 51: tg.startTone(ToneGenerator.TONE_CDMA_MED_PBX_S_X4,TT);break;
      case 52: tg.startTone(ToneGenerator.TONE_CDMA_MED_SLS,TT);break;
      case 53: tg.startTone(ToneGenerator.TONE_CDMA_MED_SS,TT);break;
      case 54: tg.startTone(ToneGenerator.TONE_CDMA_MED_SSL,TT);break;
      case 55: tg.startTone(ToneGenerator.TONE_CDMA_MED_SS_2,TT);break;
      case 56: tg.startTone(ToneGenerator.TONE_CDMA_MED_S_X4,TT);break;
      case 57: tg.startTone(ToneGenerator.TONE_CDMA_NETWORK_BUSY,TT);break;
      case 58: tg.startTone(ToneGenerator.TONE_CDMA_NETWORK_BUSY_ONE_SHOT,TT);break;
      case 59: tg.startTone(ToneGenerator.TONE_CDMA_NETWORK_CALLWAITING,TT);break;
      case 60: tg.startTone(ToneGenerator.TONE_CDMA_NETWORK_USA_RINGBACK,TT);break;
      case 61: tg.startTone(ToneGenerator.TONE_CDMA_ONE_MIN_BEEP,TT);break;
      case 62: tg.startTone(ToneGenerator.TONE_CDMA_PIP,TT);break;
      case 63: tg.startTone(ToneGenerator.TONE_CDMA_PRESSHOLDKEY_LITE,TT);break;
      case 64: tg.startTone(ToneGenerator.TONE_CDMA_REORDER,TT);break;
      case 65: tg.startTone(ToneGenerator.TONE_CDMA_SIGNAL_OFF,TT);break;
      case 66: tg.startTone(ToneGenerator.TONE_CDMA_SOFT_ERROR_LITE,TT);break;
      case 67: tg.startTone(ToneGenerator.TONE_DTMF_0,TT);break;
      case 68: tg.startTone(ToneGenerator.TONE_DTMF_1,TT);break;
      case 69: tg.startTone(ToneGenerator.TONE_DTMF_2,TT);break;
      case 70: tg.startTone(ToneGenerator.TONE_DTMF_3,TT);break;
      case 71: tg.startTone(ToneGenerator.TONE_DTMF_4,TT);break;
      case 72: tg.startTone(ToneGenerator.TONE_DTMF_5,TT);break;
      case 73: tg.startTone(ToneGenerator.TONE_DTMF_6,TT);break;
      case 74: tg.startTone(ToneGenerator.TONE_DTMF_7,TT);break;
      case 75: tg.startTone(ToneGenerator.TONE_DTMF_8,TT);break;
      case 76: tg.startTone(ToneGenerator.TONE_DTMF_9,TT);break;
      case 77: tg.startTone(ToneGenerator.TONE_DTMF_A,TT);break;
      case 78: tg.startTone(ToneGenerator.TONE_DTMF_B,TT);break;
      case 79: tg.startTone(ToneGenerator.TONE_DTMF_C,TT);break;
      case 80: tg.startTone(ToneGenerator.TONE_DTMF_D,TT);break;
      case 81: tg.startTone(ToneGenerator.TONE_DTMF_P,TT);break;
      case 82: tg.startTone(ToneGenerator.TONE_DTMF_S,TT);break;
      case 83: tg.startTone(ToneGenerator.TONE_PROP_ACK,TT);break;
      case 84: tg.startTone(ToneGenerator.TONE_PROP_BEEP,TT);break;
      case 85: tg.startTone(ToneGenerator.TONE_PROP_BEEP2,TT);break;
      case 86: tg.startTone(ToneGenerator.TONE_PROP_NACK,TT);break;
      case 87: tg.startTone(ToneGenerator.TONE_PROP_PROMPT,TT);break;
      case 88: tg.startTone(ToneGenerator.TONE_SUP_BUSY,TT);break;
      case 89: tg.startTone(ToneGenerator.TONE_SUP_CALL_WAITING,TT);break;
      case 90: tg.startTone(ToneGenerator.TONE_SUP_CONFIRM,TT);break;
      case 91: tg.startTone(ToneGenerator.TONE_SUP_CONGESTION,TT);break;
      case 92: tg.startTone(ToneGenerator.TONE_SUP_CONGESTION_ABBREV,TT);break;
      case 93: tg.startTone(ToneGenerator.TONE_SUP_DIAL,TT);break;
      case 94: tg.startTone(ToneGenerator.TONE_SUP_ERROR,TT);break;
      case 95: tg.startTone(ToneGenerator.TONE_SUP_INTERCEPT,TT);break;
      case 96: tg.startTone(ToneGenerator.TONE_SUP_INTERCEPT_ABBREV,TT);break;
      case 97: tg.startTone(ToneGenerator.TONE_SUP_PIP,TT);break;
      case 98: tg.startTone(ToneGenerator.TONE_SUP_RADIO_ACK,TT);break;
      case 99: tg.startTone(ToneGenerator.TONE_SUP_RADIO_NOTAVAIL,TT);break;
      case 100: tg.startTone(ToneGenerator.TONE_SUP_RINGTONE,TT);break;
    }
  }
}


ソースは右から ... SoundTest.zip