هیچ دوره ای در سبد آموزش شما وجود ندارد
مدیریت شنیداری در اندروید (Android Audio Manager)
صفحه نخستشما می توانید به راحتی صدا یا تصویر تماس گیرنده را کنترل کنید، به عنوان مثال حالت سکوت، ویبره،صدا و غیره. اندروید گروه AndroidManager را ارائه می دهد که دسترسی به این کنترل ها را مشخص می کند. برای اینکه از گروه AndroidManager استفاده کنید، ابتدا باید یک آبجکت از این گروه با فراخوانی روش getSystemService() ، ایجاد کنید.
ترکیب آن در زیر داده شده است .
private AudioManager myAudioManager; myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
زمانی که آبجکت گروه AndroidManager را به عنوان نمونه ذکر می کنید، می توانید از روش setRingerMode برای تنظیم صدا یا تصویر تماس گیرنده در دستگاه خود استفاده کنید. ترکیب آن در زیر ارائه شده است .
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
روش setRingerMode یک شماره کامل را به عنوان پارامتر می گیرد. برای هر مدل یک شماره کامل اختصاص داده می شود که بین سبک های مختلف تمایز ایجاد می کند. مدل های ممکن عبارتند از:
شماره | متد و توضیحات |
1 | RINGER_MODE_VIBRATE
این شیوه دستگاه را در حالت ویبره قرار می دهد. |
2 | RINGER_MODE_NORMAL
این شیوه دستگاه را در حالت نرمال (صدا) قرار می دهد. |
3 | RINGER_MODE_SILENT
این شیوه دستگاه را در حالت سکوت قرار می دهد. |
زمانی که شیوه را تنظیم کردید، می توانید برای گرفتن تنظیمات حالت سیستم روش getRingerMode() را فرابخوانید، که ترکیب آن در زیر ارائه شده است.
int mod = myAudioManager.getRingerMode();
علاوه بر روش etRingerMode، روش های دیگری هم در گروه AndroidManager، برای کنترل صدا وجود دارند. این روش ها در لیست زیر ارائه شده اند.
شماره | متدو توضیحات |
1 | adjustVolume(int direction, int flags) این روش صدای پرکاربردترین جریان را تنظیم می کند. |
2 | getMode()
این روش آخرین شیوه را بازمی گرداند. |
3 | getStreamMaxVolume(int streamType) این روش شاخص بلندترین صدا برای یک جریان خاص را بازمی گرداند. |
4 | getStreamVolume(int streamType)
این روش شاخص آخرین صدا برای یک جریان خاص را بازمی گرداند. |
5 | isMusicActive()
این روش چک می کند که آیا هیچ آهنگی فعال است یا نه. |
6 | startBluetoothSco()
این روش صدای اتصال بلوتوث SCO را آغاز می کند. |
7 | stopBluetoothSco()
این روش صدای اتصال بلوتوث SCO را متوقف می کند. |
مثال
مثال زیر استفاده از گروه AndroidManager را توضیح می دهد. این مثال یک برنامه ی پایه ایجاد می کند که به شما اجازه می دهد تا شیوه های مختلف تماس گیرنده را برای دستگاه خود تنظیم کنید.
برای آزمایش این مثال، لازم است آن را روی یک دستگاه واقعی اجرا کنید.
مرحله | توضیحات |
1 | برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان AudioManager تحت بسته ی com.example.audiomanager نام گذاری کنید. |
2 | فایل src/MainActivity.java را برای افزودن کد AudioManager تغییر دهید. |
3 | لی اوت فایل XML مربوط به res/layout/activity_main.xml را تغییر داده و اگر لازم است مولفه ی GUI را به آن اضافه کنید. |
4 | فایل res/values/string.xml را تغییر دهید و مولفه های رشته ی لازم را اضافه کنید. |
5 | AndroidManifest.xml را برای افزودن دستورات لازم عوض کنید. |
6 | برنامه را اجرا کنید و یک دستگاه اجراکننده ی اندروید انتخاب کنید و برنامه را روی آن نصب کرده و نتایج را بررسی کنید. |
در اینجا محتوای src/com.example.audiomanager/MainActivity.java را مشاهده می کنید.
package com.example.sairamkrishna.myapplication; import android.app.Activity; import android.content.Context; import android.media.AudioManager; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { 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(new View.OnClickListener() { @Override public void onClick(View v) { myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); Toast.makeText(MainActivity.this,"Now in Vibrate Mode", Toast.LENGTH_LONG).show(); } }); ring.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); Toast.makeText(MainActivity.this,"Now in Ringing Mode", Toast.LENGTH_LONG).show(); } }); silent.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); Toast.makeText(MainActivity.this,"Now in silent Mode", Toast.LENGTH_LONG).show(); } }); mode.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int mod=myAudioManager.getRingerMode(); if(mod==AudioManager.RINGER_MODE_VIBRATE){ Toast.makeText(MainActivity.this,"Now in Vibrate Mode", Toast.LENGTH_LONG).show(); } else if(mod==AudioManager.RINGER_MODE_NORMAL){ Toast.makeText(MainActivity.this,"Now in Ringing Mode", Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this,"Now in Vibrate Mode", 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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Android Audio Recording" android:id="@+id/textView" android:textSize="30dp" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorialspoint" android:id="@+id/textView2" android:textColor="#ff3eff0f" android:textSize="35dp" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/abc" android:layout_below="@+id/textView2" android:layout_alignLeft="@+id/textView2" android:layout_alignStart="@+id/textView2" android:layout_alignRight="@+id/textView2" android:layout_alignEnd="@+id/textView2" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Mode" android:id="@+id/button" android:layout_below="@+id/imageView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="59dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ring" android:id="@+id/button2" android:layout_alignTop="@+id/button" android:layout_centerHorizontal="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="vibrate" android:id="@+id/button3" android:layout_alignTop="@+id/button2" android:layout_alignRight="@+id/textView" android:layout_alignEnd="@+id/textView" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Silent" android:id="@+id/button4" android:layout_below="@+id/button2" android:layout_alignLeft="@+id/button2" android:layout_alignStart="@+id/button2" /> </RelativeLayout>
در اینجا محتوای Strings.xml را مشاهده می کنید.
<resources> <string name="app_name">My Application</string> </resources>
در اینجا محتوای AndroidManifest.xml را مشاهده می کنید.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.sairamkrishna.myapplication" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
اجازه بدهید برنامه ی Androidmanager شما را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه اندرویدتان، نمایش خواهد داد.
دستگاه موبایل خود را به عنوان یک گزینه انتخاب کنید و سپس آن را چک کنید که صفحه ی زیر را نمایش خواهد داد.
اکنون دکمه ی ring را انتخاب کرده و سپس دکمه ی Current Mode را فشار دهید تا اگر وضعیت آن تنظیم شده باشد، آن را ببینید.
اکنون دکمه ی Silent و سپس دکمه ی Current Mode را فشار دهید تا اگر تنظیم شده باشد آن را مشاهده کنید.
اکنون دکمه ی vibrate و سپس دکمه ی Current Mode را فشار دهید تا اگر تنظیم شده باشد آن را مشاهده کنید، که صفحه زیر را نمایش خواهد داد.