2014-02-13 131 views
2

首先我想說,我很抱歉我知道已經有這方面的問題,但我是編程新手,android是我的第一語言。 如何設置我的應用程序以將我的應用程序中的聲音設置爲鈴聲? 我得到這個設置爲鈴聲android

String filepath ="/sdcard/yeahitsworking"; 
File ringtoneFile = new File(filepath); 

ContentValues content = new ContentValues(); 
content.put(MediaStore.MediaColumns.DATA,ringtoneFile.getAbsolutePath()); 
content.put(MediaStore.MediaColumns.TITLE, "chinnu"); 
content.put(MediaStore.MediaColumns.SIZE, 215454); 
content.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*"); 
content.put(MediaStore.Audio.Media.ARTIST, "Madonna"); 
content.put(MediaStore.Audio.Media.DURATION, 230); 
content.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
content.put(MediaStore.Audio.Media.IS_NOTIFICATION, false); 
content.put(MediaStore.Audio.Media.IS_ALARM, false); 
content.put(MediaStore.Audio.Media.IS_MUSIC, false); 


//Insert it into the database 
Log.i(TAG, "the absolute path of the file is :"+ 
ringtoneFile.getAbsolutePath()); 
Uri uri = MediaStore.Audio.Media.getContentUriForPath(ringtoneFile.getAbsolutePath()); 
//Uri newUri = context.getContentResolver().insert(uri, content); 
Uri newUri = getContentResolver().insert(uri, content); 
String ringtoneUri = newUri.toString(); 

Log.i(TAG,"the ringtone uri is :"+ringtoneUri); 
RingtoneManager.setActualDefaultRingtoneUri(getBaseContext(),RingtoneManager.TYPE_RINGTONE,newUri); 

如何設置這個,所以當我點擊按鈕,例如。 bt1將其設置爲鈴聲? 難道這樣的事情

ImageButton bt1 = (ImageButton) findViewById(R.id.bt1); 
     bt1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

這不是一個雙崗我搜索已經和他們的不回答我的問題。

+0

手段想設置鈴聲點擊按鈕? – Piyush

+0

是的。我不知道如何去做 – user3231871

+0

檢查我的答案。 – Piyush

回答

1

您可以在點擊按鈕事件中設置您的鈴聲。

urbutton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 



      String filepath ="/sdcard/yeahitsworking"; 
      File ringtoneFile = new File(filepath); 

      ContentValues values = new ContentValues(); 
      values.put(MediaStore.MediaColumns.DATA, ringtoneFile .getAbsolutePath()); 
      values.put(MediaStore.MediaColumns.TITLE, "My Song title"); 
      values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
      values.put(MediaStore.Audio.Media.ARTIST, "Madonna"); 
      values.put(MediaStore.MediaColumns.SIZE, 215454); 
      values.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
      values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false); 
      values.put(MediaStore.Audio.Media.IS_ALARM, false); 
      values.put(MediaStore.Audio.Media.IS_MUSIC, false); 

      Uri uri = MediaStore.Audio.Media.getContentUriForPath(ringtoneFile 
        .getAbsolutePath()); 
      getContentResolver().delete(
        uri, 
        MediaStore.MediaColumns.DATA + "=\"" 
          + ringtoneFile .getAbsolutePath() + "\"", null); 
      Uri newUri = getContentResolver().insert(uri, values); 

      RingtoneManager.setActualDefaultRingtoneUri(
        YourActivityName.this, RingtoneManager.TYPE_RINGTONE, 
        newUri); 

     } 
    }); 
+0

恩我得到這個錯誤:k無法解析,並且RingtonesPlaying無法解析爲類型。 – user3231871

+0

@ user3231871現在你可以chk – Piyush

+0

我應該如何處理鈴聲播放無法解析爲類型? – user3231871

1
 File k = new File(path, "mysong.mp3"); // path is a file to /sdcard/media/ringtone 

     ContentValues values = new ContentValues(); 
     values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); 
     values.put(MediaStore.MediaColumns.TITLE, "My Song title"); 
     values.put(MediaStore.MediaColumns.SIZE, 215454); 
     values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
     values.put(MediaStore.Audio.Media.ARTIST, "Madonna"); 
     values.put(MediaStore.Audio.Media.DURATION, 230); 
     values.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
     values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false); 
     values.put(MediaStore.Audio.Media.IS_ALARM, false); 
     values.put(MediaStore.Audio.Media.IS_MUSIC, false); 

     //Insert it into the database 
     Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()); 
     Uri newUri = main.getContentResolver().insert(uri, values); 

ImageButton bt1 = (ImageButton) findViewById(R.id.bt1); 
     bt1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
RingtoneManager.setActualDefaultRingtoneUri(
      myActivity, 
      RingtoneManager.TYPE_RINGTONE, 
      newUri 
    ); 
} 
}); 
+0

但是我怎樣才能設置這個,所以當我點擊按鈕設置鈴聲? – user3231871

+0

檢查我編輯的答案 –