下記のとおりです。Platformによって、コマンドが異なるようです。
なお、startActivityForResultメソッドを使った場合、設定画面が閉じられた時に、onActivityResultメソッドで「閉じられた」という通知を受けとることができます。ただし、第三番目の引数Intentの値はnullです。
AudioManagerのgetRingerModeメソッドにより、「マナーモード」の状態を取得できます。RINGER_MODE_SILENT及びRINGER_MODE_VIBRATEがマナーモードであることを示します。
下記のプログラムは動作原理を理解するための、学習・実験用ですので、実用性はありません。
稼働中の端末のPlatform(API level・バージョン) を取得するに関連記事を書いておきました。
public class SettingsActivity extends Activity
implements
OnClickListener
{
final String TAG = "me";
Button bu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bu = (Button)findViewById(R.id.Button);
bu.setOnClickListener(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode==0){
int iRet;
String s;
AudioManager am;
am = (AudioManager)getSystemService(AUDIO_SERVICE);
iRet = am.getRingerMode();
switch(iRet){
case AudioManager.RINGER_MODE_SILENT:
s = "RINGER_MODE_SILENT";
break;
case AudioManager.RINGER_MODE_NORMAL:
s = "RINGER_MODE_NORMAL";
break;
case AudioManager.RINGER_MODE_VIBRATE:
s = "RINGER_MODE_VIBRATE";
break;
default: s = ""; break;
}
TextView tv;
tv = (TextView)findViewById(R.id.Text);
tv.setText(s);
}
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onClick(View v){
if(v==bu){
Intent it;
//Platform 2.2の場合
it = new Intent(Settings.ACTION_SOUND_SETTINGS);
try{
startActivityForResult(it, 0);
}
catch(ActivityNotFoundException e){
Log.e(TAG, "ActivityNotFoundException 1");
// Platform 1.6の場合
it = new Intent(Settings.ACTION_DISPLAY_SETTINGS);
try{
startActivityForResult(it, 0);
}
catch(ActivityNotFoundException e2){
Log.e(TAG, "ActivityNotFoundException 2");
}
}
}
}
}
0 件のコメント:
コメントを投稿