Android - Audio Manager
Puoi facilmente controllare il volume della suoneria e il profilo della suoneria, ad esempio: (silenzioso, vibrazione, alto ecc.) In Android. Android fornisce la classe AudioManager che fornisce l'accesso a questi controlli.
Per utilizzare la classe AndroidManager, devi prima creare un oggetto della classe AudioManager chiamando il file getSystemService()metodo. La sua sintassi è data di seguito.
private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
Dopo aver istanziato l'oggetto della classe AudioManager, puoi usare setRingerModemetodo per impostare il profilo audio o suoneria del dispositivo. La sua sintassi è data di seguito.
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
Il metodo setRingerMode accetta un numero intero come parametro. Per ogni modalità, viene assegnato un numero intero che differenzierà le diverse modalità. Le modalità possibili sono.
Suor n | Modalità e descrizione |
---|---|
1 | RINGER_MODE_VIBRATE Questa modalità imposta il dispositivo in modalità vibrazione. |
2 | RINGER_MODE_NORMAL Questa modalità imposta il dispositivo in modalità normale (forte). |
3 | RINGER_MODE_SILENT Questa modalità imposta il dispositivo in modalità silenziosa. |
Dopo aver impostato la modalità, puoi chiamare il getRingerMode()metodo per ottenere lo stato impostato del sistema. La sua sintassi è data di seguito.
int mod = myAudioManager.getRingerMode();
Oltre al metodo getRingerMode, sono disponibili altri metodi nella classe AudioManager per controllare il volume e altre modalità. Sono elencati di seguito.
Suor n | Metodo e descrizione |
---|---|
1 | adjustVolume(int direction, int flags) Questo metodo regola il volume del flusso più rilevante |
2 | getMode() Questo metodo restituisce la modalità audio corrente |
3 | getStreamMaxVolume(int streamType) Questo metodo restituisce l'indice di volume massimo per un determinato flusso |
4 | getStreamVolume(int streamType) Questo metodo restituisce l'indice del volume corrente per un determinato flusso |
5 | isMusicActive() Questo metodo controlla se la musica è attiva. |
6 | startBluetoothSco() Questo metodo Avvia la connessione audio SCO bluetooth |
7 | stopBluetoothSco() Questo metodo interrompe la connessione audio SCO bluetooth. |
Esempio
L'esempio seguente mostra l'uso della classe AudioManager. Crea un'applicazione che ti consente di impostare diverse modalità di suoneria per il tuo dispositivo.
Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo reale.
Passi | Descrizione |
---|---|
1 | Utilizzerai l'IDE di Android Studio per creare un'applicazione Android con un pacchetto com.example.sairamkrishna.myapplication. |
2 | Modifica il file src / MainActivity.java per aggiungere il codice AudioManager |
3 | Modifica il file XML di layout res / layout / activity_main.xml aggiungi qualsiasi componente della GUI se necessario. |
4 | Modifica il file res / values / string.xml e aggiungi i componenti stringa necessari. |
5 | Modifica AndroidManifest.xml per aggiungere le autorizzazioni necessarie. |
6 | Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati. |
Ecco il contenuto di 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();
}
}
});
}
}
Ecco il contenuto di activity_main.xml
Qui abc indica il logo di 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>
Ecco il contenuto di Strings.xml
<resources>
<string name="app_name">My Application</string>
</resources>
Ecco il contenuto di 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>
Proviamo a eseguire la tua applicazione. Presumo che tu abbia collegato il tuo attuale dispositivo mobile Android al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Studio Android mostrerà le immagini
Ora seleziona il pulsante silenzioso, otterrai l'icona silenziosa nella barra delle notifiche
Ora seleziona semplicemente il pulsante dell'anello e quindi premi il pulsante della modalità corrente per vedere se il suo stato è stato impostato.
Ora premere il pulsante Vibrazione e quindi premere il pulsante della modalità corrente per vedere se è impostato o meno. Verrà visualizzata la schermata seguente.