2015-04-23 83 views
0

我想要定制铃声。我能够检查铃声,但无法将其设置为铃声。我在查找该铃声的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; 
     } 
+0

了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 –

+0

我收到上述错误 –

回答

1

内部OnActivityResult,使用

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);