Ecco: ci sono riuscito:
Inizialmente, è come per la selezione delle immagini, con la differenza che non viene fornito nessun Uri string, ma si imposta solo l'Action dell'Intent come ACTION_RINGTONE_PICKER.
Intent intent=new Intent(); intent.setAction(RingtoneManager.ACTION_RINGTONE_PICKER); startActivityForResult(intent,0);Me la riscrivo:
Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); startActivityForResult(intent,0);una scrittura alternativa in cui l'action è posta fra i parametri dell'Intent.
La differenza più significativa sta nella onActivityResult().
@Override public void onActivityResult(int requestCode, int resultCode, Intent data){ Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_RINGTONE, uri); }Riscrivo:
iniziamo con questo:
Uri ringtoneUri=data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); Log.d("URI",""+ringtoneUri);
07-04 15:35:29.935: D/URI(32324): content://media/internal/audio/media/35Ecco, con questa riga ottengo l'Uri della suoneria selezionata.
Riscrivo e vado avanti.
@Override public void onActivityResult(int requestCode, int resultCode, Intent data){ Uri ringtoneUri=data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI); RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_RINGTONE, ringtoneUri); }
In sintesi, prima deriviamo l'Uri della suoneria selezionata, quindi stabiliamo la suoneria di default.
Ora la dobbiamo suonare con il pulsante...
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri ringtoneUri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); ringtone =RingtoneManager.getRingtone(getApplicationContext(), ringtoneUri); if(ringtone!=null){ ringtone.play(); } } });Prima ricaviamo l'Uri della suoneria di default, quindi deriviamo la suoneria dall'Uri e quindi la si suona...
Riscrivo...
Uri ringtoneUri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); Ringtone ringTone=RingtoneManager.getRingtone(getApplicationContext(), ringtoneUri); if(ringTone !=null)ringTone.play();Bene.
Ora dobbiamo studiare il modo di fermare la suoneria!
Nessun commento:
Posta un commento