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