昨天做了一个小例子总结了一下,第一次写博文。这个例子实现的功能是:手机情景模式里面设置的声音模式,静音或震动等,此文主要总结的是调取手机情景模式设置的静音模式下震动,声音模式下有系统提示音,点击按钮来实现:
首先在activity_main.xml里面写如下代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginLeft="22dp"
android:layout_marginTop="20dp"
android:text="系统声音模式" />
</RelativeLayout>
下面是MainActivity.java里面的代码:
package com.wjy.mynotification;
import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.RingtoneManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn:
systemMode();
break;
}
}
private void systemMode()
{
//获取声音管理器
AudioManager audio = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
switch (audio.getRingerMode()) {//获取系统设置的铃声模式
case AudioManager.RINGER_MODE_SILENT://静音模式 震动
Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
vibrator.vibrate(1000);
break;
case AudioManager.RINGER_MODE_NORMAL://声音模式 系统提示音
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(this, RingtoneManager
.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
然后别忘了在AndroidMainfext.xml里注册一下:
<uses-permission android:name="android.permission.VIBRATE"/>