2014-02-13 128 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

检查我编辑的答案 –