نمونه ای از Audio Manager در اندروید

سه شنبه 27 بهمن 1394

در این مقاله قصد داریم یک نمونه ای ایجاد نماییم که بتوانیم صدای گوشی خود را تنظیم کنیم و آن را به حالت ویبره و یا silent بگذاریم.

نمونه ای از Audio Manager در اندروید

با استفاده از کلاس AndroidManager می توانیم صدای گوشی خود را زیاد و کم نماییم و یا اینکه گوشی را به حالت silent و ویبره در بیاوریم.

قبل از خواندن این مقاله، مقاله ی مدیریت عکس و فیلم و صدا و فایل های مختلف در اندروید را مطالعه نمایید.

در این مقاله یک application برای مدیریت صدای گوشی ایجاد می نماییم.

یک پروژه ی جدید ایجاد نمایید نام پروژه و package را مشخص کنید به صورت زیر:

حالا باید یک createactivity جدیدی ایجاد کنید به صورت زیر:

در مرحله ی بعدی آیکون مورد نظر را انتخاب می نمایید،یا اینکه آیکون پیش فرض را استفاده می کنید.

در مرحله ی بعد انتخاب یک BlankActivity است:

در مرحله ی بعدی یک فایل xml جدید در فولدر res.layout ایجاد نمایید.

ساختار پروژه ی جدید به صورت زیر خواهد بود:

برای activity خود یک منو طراحی نمایید که با استفاده از radiobutton بتوانید حالت های صدا را در گوشی خود تغییر دهید و برای کم و زیاد کردن صدا از یک seekbar استفاده می کنید.به صورت زیر:

<LinearLayout 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:orientation="vertical" >
    <TextView
	    android:id="@+id/text"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="انتخاب حالت زنگ:"
	    android:textAppearance="?android:attr/textAppearanceLarge" android:layout_gravity="right"
		android:textSize="15dp"/>
	<RadioButton
        android:id="@+id/radioNormal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:checked="true"
        android:text="normal" android:layout_gravity="right"/>
	<RadioButton
        android:id="@+id/radioSilent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Silent" android:layout_gravity="right"/>
	<RadioGroup
        android:id="@+id/radioRinger"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp" >
	</RadioGroup>
	<RadioButton
       android:id="@+id/vibrate"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="10dp"
       android:text="Vibrate" android:layout_gravity="right"/>
	<Button
       android:id="@+id/mode"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="20dp"
       android:text="تغییر حالت" android:layout_gravity="right"/>
    <TextView
	       android:id="@+id/text1"
	       android:layout_width="wrap_content"
	       android:layout_height="wrap_content"
	       android:layout_marginTop="20dp"
	       android:text="تغییر صدای زنگ:" android:layout_gravity="right"/>
   <LinearLayout
	   android:layout_width="match_parent"
	   android:layout_height="match_parent"
	   android:layout_marginTop="10dp"
	   android:orientation="horizontal" >
	   <Button
	       android:id="@+id/decrease"
	       style="?android:attr/buttonStyleSmall"
	       android:layout_width="wrap_content"
	       android:layout_height="wrap_content"
	       android:text="-" android:layout_gravity="right"/>
	   <Button
	       android:id="@+id/increase"
	       style="?android:attr/buttonStyleSmall"
	       android:layout_width="wrap_content"
	       android:layout_height="wrap_content"
	       android:text="+" />

   </LinearLayout>
</LinearLayout>

همان طور که گفتیم audiomanager این کنترل را برای ما فراهم می نماید که بتوانید صدا ی گوشی خود را عوض نمایید و یا آن را زیاد و کم کنید،  بنابر این یک شی از این کلاس فراهم می نماییم از متد getsystemservice استفاده می نماییم،زمانی که از این متد استفاده می کنیم کاربر می تواند حالت های مختلف را انتخاب نماید، برای تنظیم کردن صدا از Ringer_Mode_Silent و Ringer_Mode_Client استفاده می کنیم، برای بالا بردن و پایین بردن حجم صدا هم از متد adjaustvolumn استفاده می کنیم، داخل کلاس جاوا قطعه کد زیر را می نویسیم:

import android.media.AudioManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
   private Button modeBtn;
   private Button increaseBtn;
   private Button decreaseBtn;
   private RadioButton normal;
   private RadioButton silent;
   private RadioGroup ringGroup;
   private TextView status;
   private AudioManager myAudioManager;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      normal = (RadioButton) findViewById(R.id.radioNormal);
      silent = (RadioButton) findViewById(R.id.radioSilent);
      status = (TextView) findViewById(R.id.text);
      ringGroup = (RadioGroup) findViewById(R.id.radioRinger);
      
      modeBtn = (Button)findViewById(R.id.mode);
      modeBtn.setOnClickListener(new OnClickListener() {
		
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			int selectedId = ringGroup.getCheckedRadioButtonId();
			 
			// find which radioButton is checked by id
		        if(selectedId == silent.getId()) {
		        	silentEnable(v);
		        } else if(selectedId == normal.getId()) {
		        	 normalEnable(v);
		        } else {
		        	vibrateEnable(v);
		        }	
		}
	  });
      increaseBtn = (Button) findViewById(R.id.increase);
      increaseBtn.setOnClickListener(new OnClickListener() {
  		
  		@Override
  		public void onClick(View v) {
  			// increase the volume and show the ui
  			 myAudioManager.adjustVolume(AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
  			Toast.makeText(getApplicationContext(), "افزایش صدا",
 					 Toast.LENGTH_SHORT).show();
  		}
  	  });
      decreaseBtn = (Button) findViewById(R.id.decrease);
      decreaseBtn.setOnClickListener(new OnClickListener() {
  		
  		@Override
  		public void onClick(View v) {
  			// decrease the volume and show the ui
  			 myAudioManager.adjustVolume(AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
  			 Toast.makeText(getApplicationContext(), "کاهش صدا",
  					 Toast.LENGTH_SHORT).show();
  		}
  	  });
      // get the instance of AudioManager class
      myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
   }
   public void vibrateEnable(View view){
	   // set the ring mode to vibrate
       myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
       status.setText("Current Status: Vibrate Mode");
   }
   public void normalEnable(View view){
	  // set the ring mode to loud
      myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
      status.setText("Current Status: Ring Mode");
   }
   public void silentEnable(View view){
	  // set the ring mode to silent
      myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
      status.setText("Current Status: Silent Mode");
   }
}

زمانی که برنامه را اجرا نمایید به صورت زیر خواهد بود:

زمانی که گوشی را روی vibrate قرار بدهیم به صورت زیر خواهد بود:

زمانی که صدای گوشی را با دکمه ای که در صفحه قرار دارد کم نماییم به صورت زیر خواهد بود:

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید