如何从相应的铃声管理器获取铃声URI
问题描述:
我想要定制铃声。我能够检查铃声,但无法将其设置为铃声。我在查找该铃声的URI方面遇到问题。如何从相应的铃声管理器获取铃声URI
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select
ringtone:");
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT,
true);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_ALL);
startActivityForResult(intent, 1);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case 1:
/*Toast.makeText(getBaseContext(),
RingtoneManager.ID_COLUMN_INDEX, Toast.LENGTH_SHORT).show();
Uri targetUri = data.getData();*/
Uri uri = data.getData();
String[] ringTonePath = new String[0];
ringTonePath[0] = uri.getPath();
Cursor c = getContentResolver().query(uri, ringTonePath, null, null, null);
int columnIndex = c.getColumnIndex(ringTonePath[0]);
String tonepath = c.getString(columnIndex);
toneurl.setText(tonepath);
Log.w("Path of tone from
home......******************.........", tonepath + "");
RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(),
RingtoneManager.TYPE_NOTIFICATION, uri);
break;
default:
break;
}
答
内部OnActivityResult,使用
Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
了java.lang.RuntimeException:失败递送结果ResultInfo {谁= NULL,请求= 1,结果= -1,数据=意向{DAT =含量://media/external/audio/media/15(还有额外的)}}到activity {com.example.rknikhil.myapplication/com.example.rknikhil.myapplication.MainActivity}:java.lang.ArrayIndexOutOfBoundsException:length = 0;索引= 0 –
我收到上述错误 –