شما به راحتی می توانید میزان صدای زنگ و نمایه زنگ (بی صدا، لرزش، بلند و غیره) را در اندروید کنترل کنید. اندروید کلاس Audio Manager را ایجاد کرده است که دسترسی به این کنترل ها را به راجتی فراهم کند. برای استفاده از کلاس AudioManager، ابتدا باید با فراخوانی متد ()getSystemService یک شی از کلاس Audio Manager ایجاد کنید. به شکل زیر :
private AudioManager myAudioManager; myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
هنگامی که یک شیء از کلاس AudioManager را نمونه برداری میکنید، با استفاده از این شی می توانید کنترل مدیریت صدا در اندروید را در دست بگیرد و از متد setRingerMode برای تنظیم نمایه صدا یا زنگ دستگاه خود استفاده کنید. به این شکل :
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
متد setRingerMode یک عدد صحیح را به عنوان پارامتر دریافت میکند. برای هر حالت، یک عدد صحیح تخصیص داده می شود که بین حالت های مختلف تفاوت قائل می شود. حالت های ممکن را در پایین لیست کردیم:
متد و توضیحات | ردیف |
RINGER_MODE_VIBRATE
این حالت دستگاه را در حالت لرزش قرار می دهد. |
1 |
RINGER_MODE_NORMAL
این حالت دستگاه را در حالت عادی (بلند) تنظیم می کند. |
2 |
RINGER_MODE_SILENT
این حالت دستگاه را در حالت بی صدا قرار می دهد. |
3 |
هنگامی که حالت را تنظیم کردید، می توانید متد getRingerMode() را فراخوانی کنید تا وضعیت تنظیم شده سیستم را بدست آورید. به این شکل :
int mod = myAudioManager.getRingerMode();
به غیر از متد getRingerMode، متدهای دیگری نیز در کلاس AudioManager برای کنترل صدا و سایر حالتها وجود دارد. این متد ها در پایین لیست شده اند :
متد و توضیحات | ردیف |
adjustVolume(int direction, int flags)
این متد حجم مرتبط ترین جریان را تنظیم می کند. |
1 |
getMode()
این متد حالت صوتی فعلی را برمی گرداند. |
2 |
getStreamMaxVolume(int streamType)
این متد حداکثر شاخص حجم را برای یک جریان خاص برمی گرداند. |
3 |
getStreamVolume(int streamType)
این متد شاخص حجم فعلی را برای یک جریان خاص برمی گرداند. |
4 |
isMusicActive()
این متد بررسی می کند که آیا موسیقی فعال است یا خیر. |
5 |
startBluetoothSco()
این متد اتصال صوتی SCO بلوتوث را شروع میکند. |
6 |
stopBluetoothSco()
این متد اتصال صوتی SCO بلوتوث را متوقف میکند. |
7 |
مثال استفاده از Audio Manager
مثال زیر استفاده از کلاس AudioManager را نشان می دهد. برنامه ای ایجاد می کند که به شما امکان می دهد حالت های زنگ مختلف را برای دستگاه خود تنظیم کنید. برای آزمایش با این مثال، باید آن را روی یک دستگاه واقعی اجرا کنید.
توضیحات | مراحل |
در اندروید استودیو یک پروژه با پیکج دلخواه ایجاد کنید. | 1 |
کد های فایل MainActivity.java مطابق با کد های که در پایین آورده ایم تغییر بدهید. | 2 |
کد های فایل activity_main.xml مطابق با کد های که در پایین آورده ایم تغییر بدهید. | 3 |
یک تلفن به اندروید استودیو متصل کنید تا بتوانید برنامه را روی آن نصب و اجرا کنید. | 4 |
کد های فایل MainActivity.java
package com.foray.articlelib; import android.content.Context; import android.media.AudioManager; import android.os.Bundle; import android.widget.Button; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { Button mode,ring,vibrate,silent; private AudioManager myAudioManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vibrate=(Button)findViewById(R.id.button3); ring=(Button)findViewById(R.id.button2); mode=(Button)findViewById(R.id.button); silent=(Button)findViewById(R.id.button4); myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); vibrate.setOnClickListener(v -> { myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); Toast.makeText(MainActivity.this,"حالت ویبره فعال شد", Toast.LENGTH_LONG).show(); }); ring.setOnClickListener(v -> { myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); Toast.makeText(MainActivity.this,"حالت زنگ فعال شد", Toast.LENGTH_LONG).show(); }); silent.setOnClickListener(v -> { myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); Toast.makeText(MainActivity.this,"حالت بی صدا فعال شد", Toast.LENGTH_LONG).show(); }); mode.setOnClickListener(v -> { int mod=myAudioManager.getRingerMode(); if(mod==AudioManager.RINGER_MODE_VIBRATE){ Toast.makeText(MainActivity.this,"حالت ویبره", Toast.LENGTH_LONG).show(); } else if(mod==AudioManager.RINGER_MODE_NORMAL){ Toast.makeText(MainActivity.this,"حالت زنگ", Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this,"حالت بی صدا", Toast.LENGTH_LONG).show(); } }); } }
کد های فایل activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <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:padding="32dp" tools:context=".MainActivity"> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:gravity="center" android:text="مدیریت صدا در اندروید" android:textSize="30dp" /> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:gravity="center" android:text="7cloner.com" android:textColor="@color/black" android:textSize="35dp" /> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView2" android:layout_alignStart="@+id/textView2" android:layout_alignLeft="@+id/textView2" android:layout_alignEnd="@+id/textView2" android:layout_alignRight="@+id/textView2" android:src="@drawable/abc" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/imageView" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_marginTop="59dp" android:text="نمایش حالت" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/button" android:layout_centerHorizontal="true" android:text="زنگ" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/button2" android:layout_alignEnd="@+id/textView" android:layout_alignRight="@+id/textView" android:text="ویبره" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/button2" android:layout_alignStart="@+id/button2" android:layout_alignLeft="@+id/button2" android:text="بی صدا" /> </RelativeLayout>