Provo a salvare in SharedPreferences la stringa Uri della suoneria.
Ricreiamo un Intent per selezionare le suonerie...
Dato che con il content non riesco ancora a orientarmi, vado al risultato pratico e cerco di individuare quale sia la suoneria di default...
Si usa RingtoneManager.
Vediamolo...
Ecco, ho trovato una via differente: il codice per selezionare direttamente le suonerie:
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);Lo applico...
bttSelect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
startActivityForResult(intent,0);
}
});
Bene: così finalmente ottengo una lista delle suonerie! Nella confusione di questi giorni intorno a questo argomento non avevo ancora messo a fuoco la cosa sebbene avessi già incontrato questo genere di codice.Così facendo non c'è bisogno di fornire Intent.setData.
Ecco il codice completo, che funziona:
public class MainActivity extends Activity {
Button bttSelect;
Button bttPlay;
Uri ringtoneUri;
SharedPreferences SP;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SP=this.getPreferences(Context.MODE_PRIVATE);
bttSelect=(Button)findViewById(R.id.button1);
bttPlay=(Button)findViewById(R.id.button2);
bttSelect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
startActivityForResult(intent,0);
}
});
bttPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String stringUri=SP.getString("suoneria", "");
if(TextUtils.isEmpty(stringUri)==false){
final Ringtone ringTone=RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(stringUri));
ringTone.play();
TimerTask task=new TimerTask(){
@Override
public void run() {
ringTone.stop();
}
};
Timer timer=new Timer();
timer.schedule(task, 2000);
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
if(resultCode==RESULT_OK){
Uri uri=data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
String stringUri=uri.toString();
SharedPreferences.Editor editor = SP.edit();
editor.putString("suoneria", stringUri);
editor.commit();
}
}
}
Nessun commento:
Posta un commento