Android: AudioManager trong Android


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Bạn có thể dễ dàng điều khiển âm lượng chuông (Ringer Volume) như silent, vibrate, loud, … trong Android. Android cung cấp lớp AudioManager để cung cấp truy cập tới các điều khiển này.

Để sử dụng lớp AudioManager, đầu tiên bạn phải tạo một đối tượng của lớp AudioManager bằng cách gọi phương thức getSystemService(). Cú pháp như sau:

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

Khi bạn đã khởi tạo đối tượng của lớp AudioManager, bạn có thể sử dụng phương thức setRingerMode để thiết lập chế độ chuông cho thiết bị. Cú pháp như sau:

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

Phương thức setRingerMode nhận một số nguyên làm tham số. Với mỗi chế độ khác nhau thì sẽ ứng với một số nguyên sẽ được gán. Các chế độ có thể có là:

Stt Mode và Miêu tả
1 RINGER_MODE_VIBRATE

Thiết lập thiết bị tại chế độ vibrate

2 RINGER_MODE_NORMAL

Thiết lập thiết bị tại chế độ normal

3 RINGER_MODE_SILENT

Thiết lập thiết bị tại chế độ silent

Khi bạn đã thiết lập chế độ, bạn có thể gọi phương thức getRingerMode() để lấy trạng thái đã thiết lập của hệ thống. Cú pháp là:

int mod = myAudioManager.getRingerMode();

Ngoài phương thức getRingerMode, lớp AudioManager còn cung cấp một số phương thức khác để điều khiển âm lượng và các chế độ khác. Bảng dưới đây liệt kê các phương thức này:

Stt Phương thức & Miêu tả
1 adjustVolume(int direction, int flags)

Phương thức này hiệu chỉnh âm lượng của stream

2 getMode()

Trả về mode hiện tại

3 getStreamMaxVolume(int streamType)

Trả về âm lượng lớn nhất cho một stream cụ thể

4 getStreamVolume(int streamType)

Trả về âm lượng hiện tại cho một stream cụ thể

5 isMusicActive()

Phương thức này kiểm tra có hay không bất cứ music nào là alive

6 startBluetoothSco()

Phương thức này bắt đầu kết nối Bluetooth SCO

7 stopBluetoothSco()

Phương thức này dừng kết nối Bluetooth SCO

Ví dụ

Ứng dụng Android dưới đây minh họa cách sử dụng lớp AudioManager.

Sau đây là nội dung của MainActivity.java:

package v1study.com.audiomanager;

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 buttonMode, buttonRing, buttonVibrate, buttonSilent;
  private AudioManager audioManager;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getViews(); //Phương thức lấy các view (tự xây dựng)

    buttonVibrate.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
        Toast.makeText(MainActivity.this, "Chuyn sang chế đ Vibrate", 2000).show();
      }
    });

    buttonRing.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        Toast.makeText(MainActivity.this, "Chuyn sang chế đ Ringing", 2000).show();
      }
    });

    buttonSilent.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
        Toast.makeText(MainActivity.this, "Chuyn sang chế đ Silent", 2000).show();
      }
    });

    buttonMode.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        switch (audioManager.getRingerMode()){
          case AudioManager.RINGER_MODE_VIBRATE:
            Toast.makeText(MainActivity.this, "Đang  chế đ Vibrate", 2000).show();
            break;
          case AudioManager.RINGER_MODE_NORMAL:
            Toast.makeText(MainActivity.this, "Đang  chế đ Ringing", 2000).show();
            break;
          default:
            Toast.makeText(MainActivity.this, "Đang  chế đ Silent", 2000).show();
        }
      }
    });
  }

  private void getViews() {
    buttonVibrate = findViewById(R.id.buttonVibrate);
    buttonRing = findViewById(R.id.buttonRing);
    buttonMode = findViewById(R.id.buttonMode);
    buttonSilent = findViewById(R.id.buttonSilent);
    audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
  }
}

Sau đây là nội dung của file activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginBottom="8dp"
    android:layout_marginTop="16dp"
    android:text="@string/audiomanagerv1study"
    android:textAlignment="center"
    android:textSize="30sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.069"
    android:gravity="center_horizontal"
    android:textStyle="bold"
    android:textColor="#4CAF50"/>

  <ImageView
    android:id="@+id/logo_v1study"
    android:layout_width="272dp"
    android:layout_height="272dp"
    android:layout_marginBottom="8dp"
    android:layout_marginTop="8dp"
    android:contentDescription="@string/logo"
    android:src="@drawable/logo_v1study"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_bias="0.496"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.343"/>

  <Button
    android:id="@+id/buttonMode"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="8dp"
    android:layout_marginTop="8dp"
    android:text="@string/mode"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.964"
    app:layout_constraintHorizontal_bias="0.498"/>

  <Button
    android:id="@+id/buttonSilent"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/silent"
    app:layout_constraintEnd_toEndOf="parent"
    android:layout_marginEnd="32dp"
    android:layout_marginRight="32dp"
    app:layout_constraintBottom_toBottomOf="parent"
    android:layout_marginBottom="112dp"/>

  <Button
    android:text="@string/vibrate"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:id="@+id/buttonVibrate"
    app:layout_constraintEnd_toStartOf="@+id/buttonRing"
    app:layout_constraintBottom_toBottomOf="parent"
    android:layout_marginEnd="44dp"
    android:layout_marginRight="44dp"
    android:layout_marginBottom="112dp"/>

  <Button
    android:text="@string/ring"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonRing"
    app:layout_constraintEnd_toStartOf="@+id/buttonSilent"
    android:layout_marginEnd="40dp"
    android:layout_marginRight="40dp"
    app:layout_constraintBottom_toBottomOf="parent"
    android:layout_marginBottom="112dp"/>

</androidx.constraintlayout.widget.ConstraintLayout>

Sau đây là nội dung của file strings.xml:

<resources>
  <string name="app_name">AudioManagerV1Study</string>
  <string name="silent">Silent</string>
  <string name="ring">Ring</string>
  <string name="mode">Mode</string>
  <string name="vibrate">vibrate</string>
  <string name="audiomanager">AudioManager</string>
</resources>

Cuối cùng, bạn chạy ứng dụng Android vừa tạo ở trên.

AudioManager

Bây giờ chọn lút SILENT, bạn sẽ thấy thông báo như hình dưới:

Audio manager trong Android

Bây giờ chọn nút MODE, bạn sẽ thấy thông báo như hình dưới:

Audio manager trong Android

» Tiếp: Intent Standard Action trong Android
« Trước: Gửi Email
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!