Uri ringtoneUri= RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(),RingtoneManager.TYPE_NOTIFICATION);
Ringtone ringtone=RingtoneManager.getRingtone(getApplicationContext(),ringtoneUri);
ringtone.play();
Questo suona la suoneria di tipo NOTIFICATION.Esistono anche altri tipi:
Uri ringtoneUri= RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(),RingtoneManager.TYPE_ALARM);
Ringtone ringtone=RingtoneManager.getRingtone(getApplicationContext(),ringtoneUri);
ringtone.play();
Questo invee suona la suoneria di tipo ALARM (che non la smette più!)Andiamo a vedere l'altro tipo:
Uri ringtoneUri= RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(),RingtoneManager.TYPE_RINGTONE);
Ringtone ringtone=RingtoneManager.getRingtone(getApplicationContext(),ringtoneUri);
ringtone.play();
Questo suona la suoneria telefonica.C'è poi il capitolo della scelta della suoneria personalizzata per l'applicazione, che non ricordo.
Rinfreschiamo la memoria...
Ci si avvale di SharedPreferences.
Se non è stato salvato niente, ossia se la stringa ripescata da SharedPreferences è vuota, si usa la suoneria di default, altrimenti si Uri.parsa la stringa reperita in SharedPreferences.
Devo definire, però SharedPreferences.
SharedPreferences SP;
.....
SP=getApplicationContext().getSharedPreferences("suoneria",Context.MODE_PRIVATE);
Fatto questo, torno a modificare il codice che stabilisce la suoneria:
SP=getApplicationContext().getSharedPreferences("suoneria",Context.MODE_PRIVATE);
Uri ringtoneUri;
Ringtone ringtone=null;
String strSuoneria=SP.getString("suoneria","");
if(TextUtils.isEmpty(strSuoneria)){
ringtoneUri= RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(),RingtoneManager.TYPE_NOTIFICATION);
}else{
ringtoneUri=Uri.parse(strSuoneria);
}
ringtone=RingtoneManager.getRingtone(getApplicationContext(),ringtoneUri);
ringtone.play();
Il discorso è semplice.E funziona.
Ora devo provvedere una sezione per la scelta della suoneria.
Creo un'activity Settings per la regolazione di questa e altre funzioni, raggiungibile tramite menu.
Ecco l'XML del menu di MainActivity modificato:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/stopTimer"
android:title="Stop Timer">
</item>
<item
android:id="@+id/showSettings"
android:title="Impostazioni" >
</item>
</menu>
Ed ecco il menu in MainActivity modificato:
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuInflater inflater=this.getMenuInflater();
inflater.inflate(R.menu.miomenu,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem menuItem){
switch(menuItem.getItemId()){
case R.id.stopTimer:
cancellaTimer();
break;
case R.id.showSettings:
Intent i=new Intent(MainActivity.this,Settings.class);
startActivity(i);
}
return true;
}
E in Settings possiamo scrivere il codice per la scelta delle suonerie.Prima l'intent:
bttSceltaSuoneria.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION);
startActivityForResult(intent,0);
}
});
(subordinato a un Button)Quindi onActivityResult:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
Uri uri=data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
SharedPreferences.Editor editor=SP.edit();
editor.putString("suoneria",uri.toString());
editor.commit();
}
E vediamo se combina... Comunque ho fatto una faticaccia a scrivere questo codice, completamente dimenticato.
Nessun commento:
Posta un commento