Cómo escribir un programa para configurar el tono de llamada de Android
1. Si lees la ruta del archivo de audio, primero debes insertar el archivo de música en la biblioteca multimedia.
Código Java
// Set - Método específico del tono de llamada
public void setMyRingtone(Ruta de la cadena)
{
Archivo sdfile = nuevo Archivo (ruta);
Valores ContentValues = nuevos Valores ContentValues();
valores.
valores.put( MediaStore.MediaColumns.DATOS, sdfile.getAbsolutePath());
valores.put( MediaStore.MediaColumns.TITLE, sdfile.getName());
Valor.put( MediaStore. MediaColumns.TITLE, sdfile.getName())
valores.put( MediaStore.MediaColumns.MIME_TYPE, "audio/*"); .IS_RINGTONE, verdadero);
valores.put( MediaStore.Audio.Media.IS_NOTIFICATION, verdadero)
valores.put( MediaStore.Audio.Media.IS_NOTIFICATION, falso); /p>
valores.put( MediaStore.Audio.Media.IS_ALARM, falso);
valores.put( MediaStore.Audio.Media.IS_MUSIC, falso
); Uri uri = MediaStore .Audio.Media.getContentUriMedia.getContentUriForPath(sdfile.getAbsolutePath());
Uri newUri = this.getContentResolver().insert(uri, valores
); RingtoneManager.setActualDefaultRingtoneUri( this, RingtoneManager.TYPE_RINGTONE, newUri);
Toast.makeText( getApplicationContext (), "¡Establezca correctamente el tono de llamada para las llamadas entrantes! ", Toast.LENGTH_SHORT ).show();
System.out.println("setMyRingtone() ----- tono de llamada");
}
//Configuración: implementación específica del sonido de alarma
public void setMyNotification(Ruta de cadena)
{
Archivo sdfile = new File(ruta); /p>
Valores de ContentValues = nuevos Valores de contenido();
valores.
valores.put(MediaStore.Audio.Media.IS_NOTIFICATION, true <); /p>
valores.put(MediaStore.Audio.Media.IS_ALARM, falso);
valores.put(MediaStore.Audio.Media.IS_MUSIC, falso
Uri uri = MediaStore.Audio); .Media.getContentUriForPath(sdfile.getAbsolutePath());
Uri newUri = this.GetContentResolver(sdfile.getAbsolutePath())getContentResolver().insert(uri, valores
); RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager. TYPE_NOTIFICATION, newUri);
Toast.makeText( getApplicationContext (), "¡Establecí el tono de notificación correctamente!", Toast.LENGTH_SHORT ).show(); p> System.out.println("setMyNOTIFICATION----- tone");
}
//Configuración: implementación específica del tono de alarma
public void setMyAlarm(ruta de cadena)
{
Archivo sdfile = nuevo Archivo(ruta
Valores de ContentValues = nuevos ContentValues();
valores.put(MediaStore.MediaColumns.DATA, sdfile.getAbsolutePath());
valores.put(MediaStore.MediaColumns.TITLE, sdfile.getName()); p>
valores.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
valores.put(MediaStore.Audio.Media.IS_RINGTONE, falso
valores.
valores.put( MediaStore.Audio.Media.IS_NOTIFICATION, falso
valores.put( MediaStore.Audio.Media.IS_ALARM, verdadero
valores.put( MediaStore.Audio.Media.IS_MUSIC, false);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(sdfile.getAbsolutePath()); > Uri newUri = this.getContentResolver().insert(uri, valores);
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager. TYPE_ALARM, newUri
Toast.makeText();
getApplicationContext (), "¡Establezca el tono de alarma correctamente!", Toast.LENGTH_SHORT ).show();
System.out.println("setMyNOTIFICATION------ tono de alarma"); >
}
2.
2. Si lee archivos de audio de la biblioteca multimedia y los configura como tonos de llamada, utilice el siguiente método:
Primero escriba una clase constante (una etiqueta que define el tipo de tono de llamada que desea configurar):
AppConstant.java
Código Java
Interfaz pública AppConstant {
public static final int RINGTONE = 0; //Tono de llamada
public static final int NOTIFICATION = 1; //Tono de notificación
public static final int ALARMA = 2 ; //Despertador
public static final int ALL = 3; //Todos los sonidos
}
Este método necesita pasar el tono de llamada que desea. establezca como ruta completa (por ejemplo,
código Java
private void setVoice(String path2,int id)
{
<). p> ContentValues cv = new ContentValues();Uri newUri = null
Uri uri = MediaStore.Audio.Media.GetContentUriFor.GetContentUriForPath(path2); >
// Consultar música ¿Existe el archivo en la biblioteca multimedia?
Cursor cursor = this.getContentResolver().query(uri, null, MediaStore.Audio.MediaColumn.DATA)MediaColumns.DATA + "=?", nueva Cadena[] { ruta2 },null
if (cursor.moveToFirst() && cursor.getCount() > 0)
{ p>
String _id = cursor. getString (0);
switch (id) {
case AppConstant.put(MediaStore.Audio.Media.IS_MUSIC, false);
ruptura;
caso AppConstant.NOTIFICACIÓN:
cv.put(MediaStore.Audio.Media.IS_RINGTONE, falso
);