Android - Administrador de audio

Puede controlar fácilmente el volumen del timbre y el perfil del timbre, es decir: (silencio, vibración, alto, etc.) en Android. Android proporciona la clase AudioManager que proporciona acceso a estos controles.

Para usar la clase AndroidManager, primero debe crear un objeto de la clase AudioManager llamando al getSystemService()método. Su sintaxis se da a continuación.

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

Una vez que crea una instancia del objeto de la clase AudioManager, puede usar setRingerModemétodo para configurar el perfil de audio o timbre de su dispositivo. Su sintaxis se da a continuación.

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

El método setRingerMode toma un número entero como parámetro. Para cada modo, se asigna un número entero que diferenciará entre los diferentes modos. Los modos posibles son.

No Señor Modo y descripción
1

RINGER_MODE_VIBRATE

Este modo configura el dispositivo en modo de vibración.

2

RINGER_MODE_NORMAL

Este modo configura el dispositivo en modo normal (alto).

3

RINGER_MODE_SILENT

Este modo configura el dispositivo en modo silencioso.

Una vez que haya configurado el modo, puede llamar al getRingerMode()método para obtener el estado establecido del sistema. Su sintaxis se da a continuación.

int mod = myAudioManager.getRingerMode();

Además del método getRingerMode, hay otros métodos disponibles en la clase AudioManager para controlar el volumen y otros modos. Se enumeran a continuación.

No Señor Método y descripción
1

adjustVolume(int direction, int flags)

Este método ajusta el volumen de la transmisión más relevante

2

getMode()

Este método devuelve el modo de audio actual

3

getStreamMaxVolume(int streamType)

Este método devuelve el índice de volumen máximo para una secuencia en particular.

4

getStreamVolume(int streamType)

Este método devuelve el índice de volumen actual para una secuencia en particular.

5

isMusicActive()

Este método comprueba si hay música activa.

6

startBluetoothSco()

Este método inicia la conexión de audio bluetooth SCO

7

stopBluetoothSco()

Este método detiene la conexión de audio bluetooth SCO.

Ejemplo

El siguiente ejemplo demuestra el uso de la clase AudioManager. Crea una aplicación que le permite configurar diferentes modos de timbre para su dispositivo.

Para experimentar con este ejemplo, debe ejecutarlo en un dispositivo real.

Pasos Descripción
1 Utilizará Android Studio IDE para crear una aplicación de Android en un paquete com.example.sairamkrishna.myapplication.
2 Modifique el archivo src / MainActivity.java para agregar el código AudioManager
3 Modifique el archivo XML de diseño res / layout / activity_main.xml agregue cualquier componente GUI si es necesario.
4 Modifique el archivo res / values ​​/ string.xml y agregue los componentes de cadena necesarios.
5 Modifique AndroidManifest.xml para agregar los permisos necesarios.
6 Ejecute la aplicación y elija un dispositivo Android en ejecución e instale la aplicación en él y verifique los resultados.

Aquí está el contenido de src/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();
            }
         }
      });
   }
}

Aquí está el contenido de activity_main.xml

Aquí abc indica el logo de tutorialspoint
<?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>

Aquí está el contenido de Strings.xml

<resources>
   <string name="app_name">My Application</string>
</resources>

Aquí está el contenido de 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>

Intentemos ejecutar su aplicación. Supongo que ha conectado su dispositivo móvil Android real con su computadora. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar en la barra de herramientas. Android Studio mostrará imágenes

Ahora seleccione el botón de silencio, obtendrá el icono de silencio en la barra de notificaciones

Ahora simplemente seleccione el botón de anillo y luego presione el botón de modo actual para ver si se ha establecido su estado.

Ahora presione el botón Vibrar y luego presione el botón de modo actual para ver si está configurado o no, se mostrará la siguiente pantalla.