设置铃声类没有做任何事情

时间:2011-07-27 19:28:06

标签: android ringtone

编辑:

整个SetRingtone.java -

public class SetRingtone extends Activity{

String TAG = "CFFS"; // Class var for logging - identifies the app in the logcat

public boolean saveas(int ressound){  
      byte[] buffer=null;  
      InputStream fIn = getBaseContext().getResources().openRawResource(ressound);  
      int size=0;  

      try {  
       size = fIn.available();  
       buffer = new byte[size];  
       fIn.read(buffer);
       fIn.close();  
      } catch (IOException e) {  
       // TODO Auto-generated catch block  
       return false;  
      }  

      String path = Environment.getExternalStorageDirectory().getPath() + "/media/ringtone/ringtone.mp3";
      String filename="College Football Fight Song"+".mp3";  


      boolean exists = (new File(path)).exists();  
      if (!exists){new File(path).mkdirs();}  

      FileOutputStream save;  
      try {  
       save = new FileOutputStream(path+filename);  
       save.write(buffer);  
       save.flush();  
       save.close();  
      } catch (FileNotFoundException e) {  
       // TODO Auto-generated catch block  
       return false;  
      } catch (IOException e) {  
       // TODO Auto-generated catch block  
       return false;  
      }      

      sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path+filename)));  


     File k = new File(path, filename);  

     ContentValues values = new ContentValues();  
     values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
     values.put(MediaStore.MediaColumns.TITLE, "College Football Fight Song");
     values.put(MediaStore.MediaColumns.SIZE, 215454);
     values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
     values.put(MediaStore.Audio.Media.ARTIST, "");
     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());

     getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);

     Uri newUri = getContentResolver().insert(uri, values);

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

    return false;
}

我要设置铃声的Java -

private OnLongClickListener onLongImageClick = new OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        if (v.getId() == R.id.boston_college_imageview) {
            SetRingtone(R.raw.acc_boston_college);
        }
        return false;
        }
};

我把它传递给SetRingtone.java -

private void SetRingtone(int soundID) {
    Intent otherIntent = new Intent();
    otherIntent.setClassName("com.carboni.fightsongs", "com.carboni.fightsongs.SetRingtone");
    otherIntent.putExtra("com.carboni.fightsongs.FILE_RES_ID", soundID);
    startActivity(otherIntent);
}

1 个答案:

答案 0 :(得分:0)

这是使用ImageView长按一下的样子:

imageView1.setOnLongClickListener(new ImageView.OnLongClickListener()
{
    public boolean onLongClick(View v)
    {
        if (v.getId() == R.id.boston_college_imageview)
        {
            SetRingtone(R.raw.acc_boston_college);
        }
        return false;
    }
});

<强>更新

String path = Environment.getExternalStorageDirectory().getPath() + "/media/ringtone";
String filename="College Football Fight Song.mp3";  

boolean exists = (new File(path)).exists();  
if (!exists){new File(path).mkdirs();}  

FileOutputStream save;
try
{
    File file = new File(path, filename);
    save = new FileOutputStream(file);
    save.write(buffer);
    save.flush();
    save.close();
}
catch (FileNotFoundException e)
{
    return false;  
}
catch (IOException e)
{
    return false;  
}