2011年12月16日 星期五

鈴聲模式_AudioManager

AudioManager提供訪問量和振鈴模式控制。


使用Context.getSystemService(Context.AUDIO_SERVICE)來得到這個類別的一個實例。


由於我們需取得目前手機的通話狀態,因此必需在AndroidManifest.xml內新增一個讀取通話狀態的權限。


<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

package com.demo.android.RingerMode;

import android.app.Activity;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class RingerModeActivity extends Activity {
    /** Called when the activity is first created. */
//設定模式
private AudioManager audioManager;

private Button normalBtn;
private Button silentBtn;
private Button vibrateBtn;

private TextView ringerModeTv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
        normalBtn = (Button)findViewById(R.id.normalBtn);
        silentBtn = (Button)findViewById(R.id.silentBtn);
        vibrateBtn = (Button)findViewById(R.id.vibrateBtn);
     
        audioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
     
        ShowRingerMode();
     
        normalBtn.setOnClickListener(new Button.OnClickListener(){
        @Override
public void onClick(View v) {
// TODO Auto-generated method stub
        //RINGER_MODE_NORMAL 模式為可能發聲,可能震動
        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
       
        ShowRingerMode();
}
        });
     
        silentBtn.setOnClickListener(new Button.OnClickListener(){
        @Override
public void onClick(View v) {
// TODO Auto-generated method stub
        //RINGER_MODE_SILEN模式為靜音
        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
       
        ShowRingerMode();
}
        });
     
        vibrateBtn.setOnClickListener(new Button.OnClickListener(){
        @Override
public void onClick(View v) {
// TODO Auto-generated method stub
        //模式為靜音震動
        audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
       
        ShowRingerMode();
}
        });
    }
 
    private void ShowRingerMode(){
    ringerModeTv = (TextView)findViewById(R.id.ringerModeTv);
    int ringerMode = audioManager.getRingerMode();
   
    switch(ringerMode){
    case AudioManager.RINGER_MODE_NORMAL:
    ringerModeTv.setText("來電模式:鈴聲");
    break;
    case AudioManager.RINGER_MODE_SILENT:
    ringerModeTv.setText("來電模式:靜音");
    break;
   
    case AudioManager.RINGER_MODE_VIBRATE:
    ringerModeTv.setText("來電模式:震動");
    break;
    }
    }
}


沒有留言:

張貼留言