صفحه اصلی » پایگاه دانش » برنامه نویسی اندروید » مثال های کاربری » مدیریت شنیداری در اندروید (Android Audio Manager)

فهرست آموزش برنامه نویسی اندروید

مدیریت شنیداری در اندروید (Android Audio Manager)

۱۳۹۸/۰۸/۲۱ ۳۷

شما می توانید به راحتی صدا یا تصویر تماس گیرنده را کنترل کنید، به عنوان مثال حالت سکوت، ویبره،صدا و غیره. اندروید گروه AndroidManager را ارائه می دهد که دسترسی به این کنترل ها را مشخص می کند. برای اینکه از گروه AndroidManager استفاده کنید، ابتدا باید یک آبجکت از این گروه با فراخوانی روش getSystemService() ، ایجاد کنید.

ترکیب آن در زیر داده شده است .

private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

زمانی که آبجکت گروه AndroidManager را به عنوان نمونه ذکر می کنید، می توانید از روش setRingerMode برای تنظیم صدا یا تصویر تماس گیرنده در دستگاه خود استفاده کنید. ترکیب آن در زیر ارائه شده است .

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

روش setRingerMode یک شماره کامل را به عنوان پارامتر می گیرد. برای هر مدل یک شماره کامل اختصاص داده می شود که بین سبک های مختلف تمایز ایجاد می کند. مدل های ممکن عبارتند از:

شماره متد و توضیحات
۱ RINGER_MODE_VIBRATE

این شیوه دستگاه را در حالت ویبره قرار می دهد.

۲ RINGER_MODE_NORMAL

این شیوه دستگاه را در حالت نرمال (صدا) قرار می دهد.

۳ RINGER_MODE_SILENT

این شیوه دستگاه را در حالت سکوت قرار می دهد.

زمانی که شیوه را تنظیم کردید، می توانید برای گرفتن تنظیمات حالت سیستم روش getRingerMode() را فرابخوانید، که ترکیب آن در زیر ارائه شده است.

int mod = myAudioManager.getRingerMode();

علاوه بر روش etRingerMode، روش های دیگری هم در گروه AndroidManager، برای کنترل صدا وجود دارند. این روش ها در لیست زیر ارائه شده اند.

شماره متدو توضیحات
۱ adjustVolume(int direction, int flags) این روش صدای پرکاربردترین جریان را تنظیم می کند.
۲ getMode()

این روش آخرین شیوه را بازمی گرداند.

۳ getStreamMaxVolume(int streamType) این روش شاخص بلندترین صدا برای یک جریان خاص را بازمی گرداند.
۴ getStreamVolume(int streamType)

این روش شاخص آخرین صدا برای یک جریان خاص را بازمی گرداند.

۵ isMusicActive()

این روش چک می کند که آیا هیچ آهنگی فعال است یا نه.

۶ startBluetoothSco()

این روش صدای اتصال بلوتوث SCO را آغاز می کند.

۷ stopBluetoothSco()

این روش صدای اتصال بلوتوث SCO را متوقف می کند.

مثال

مثال زیر استفاده از گروه AndroidManager را توضیح می دهد. این مثال یک برنامه ی پایه ایجاد می کند که به شما اجازه می دهد تا شیوه های مختلف تماس گیرنده را برای دستگاه خود تنظیم کنید.

برای آزمایش این مثال، لازم است آن را روی یک دستگاه واقعی اجرا کنید.

مرحله توضیحات
۱ برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان AudioManager تحت بسته ی com.example.audiomanager نام گذاری کنید.
۲ فایل src/MainActivity.java را برای افزودن کد AudioManager تغییر دهید.
۳ لی اوت فایل XML مربوط به res/layout/activity_main.xml را تغییر داده و اگر لازم است مولفه ی GUI را به آن اضافه کنید.
۴ فایل res/values/string.xml را تغییر دهید و مولفه های رشته ی لازم را اضافه کنید.
۵ AndroidManifest.xml را برای افزودن دستورات لازم عوض کنید.
۶ برنامه را اجرا کنید و یک دستگاه اجراکننده ی اندروید انتخاب کنید و برنامه را روی آن نصب کرده و نتایج را بررسی کنید.

در اینجا محتوای 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، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن RunEclipse Run Icon از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه  اندرویدتان، نمایش خواهد داد.

 AndroidManager , مدیریت شنیداری,اندروید ,برنامه نویسی ,برنامه نویسی اندروید,,,,,,,

دستگاه موبایل خود را به عنوان یک گزینه انتخاب کنید و سپس آن را چک کنید که صفحه ی زیر را نمایش خواهد داد.

 AndroidManager , مدیریت شنیداری,اندروید ,برنامه نویسی ,برنامه نویسی اندروید,,,,,,,

اکنون دکمه ی ring را انتخاب کرده و سپس دکمه ی Current Mode را فشار دهید تا اگر وضعیت آن تنظیم شده باشد، آن را ببینید.

 AndroidManager , مدیریت شنیداری,اندروید ,برنامه نویسی ,برنامه نویسی اندروید,,,,,,,

اکنون دکمه ی Silent و سپس دکمه ی Current Mode را فشار دهید تا اگر تنظیم شده باشد آن را مشاهده کنید.

دکمه ی Silent

اکنون دکمه ی vibrate و سپس دکمه ی Current Mode را فشار دهید تا اگر تنظیم شده باشد آن را مشاهده کنید، که صفحه زیر را نمایش خواهد داد.

 AndroidManager , مدیریت شنیداری,اندروید ,برنامه نویسی ,برنامه نویسی اندروید

دانشجویار نماد اعتماد به دانشجویار مجوز نشر دیجیتال لوگو شرکت به پرداخت ملت logo-samandehi مجوز سازمان فنی حرفه ای کشور