نمونه ای از Audio Manager در اندروید
سه شنبه 27 بهمن 1394در این مقاله قصد داریم یک نمونه ای ایجاد نماییم که بتوانیم صدای گوشی خود را تنظیم کنیم و آن را به حالت ویبره و یا silent بگذاریم.
با استفاده از کلاس 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 قرار بدهیم به صورت زیر خواهد بود:
زمانی که صدای گوشی را با دکمه ای که در صفحه قرار دارد کم نماییم به صورت زیر خواهد بود:
- Android
- 2k بازدید
- 4 تشکر