使用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;
}
}
}

沒有留言:
張貼留言