programmer/android

ringtone/alarm tone 설정

ocsoosoo 2013. 7. 1. 20:14

AndroidManifest.xml

    <uses-permission android:name="android.permission.WRITE_SETTINGS" />


    public void setAsRingTone(){

        String filePath = getSelectedFilePath();

        MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();

        metaRetriever.setDataSource(filePath);

        String durationStr = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);

        int duration = (int)Long.parseLong(durationStr);

        metaRetriever.release();


        File ringtoneFile = new File(filePath);

        ContentValues values = new ContentValues();

        values.put(MediaStore.MediaColumns.DATA, ringtoneFile.getAbsolutePath());

        values.put(MediaStore.MediaColumns.TITLE, "ocsoosoo");

        values.put(MediaStore.MediaColumns.SIZE, ringtoneFile.length());

        values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");

        values.put(MediaStore.Audio.Media.ARTIST, "ocsoosoo");

        values.put(MediaStore.Audio.Media.DURATION, duration);

        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(ringtoneFile.getAbsolutePath());

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


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

        Toast.makeText(this, "Completed.", Toast.LENGTH_SHORT).show();

    }


    public void setAsAlarmTone(){

        String filePath = getSelectedFilePath();

        MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();

        metaRetriever.setDataSource(filePath);

        String durationStr = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);

        int duration = (int)Long.parseLong(durationStr);

        metaRetriever.release();


        File ringtoneFile = new File(filePath);

        ContentValues values = new ContentValues();

        values.put(MediaStore.MediaColumns.DATA, ringtoneFile.getAbsolutePath());

        values.put(MediaStore.MediaColumns.TITLE, "ocsoosoo");

        values.put(MediaStore.MediaColumns.SIZE, ringtoneFile.length());

        values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");

        values.put(MediaStore.Audio.Media.ARTIST, "ocsoosoo");

        values.put(MediaStore.Audio.Media.DURATION, duration);

        values.put(MediaStore.Audio.Media.IS_RINGTONE, false);

        values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);

        values.put(MediaStore.Audio.Media.IS_ALARM, true);

        values.put(MediaStore.Audio.Media.IS_MUSIC, false);


        //Insert it into the database

        Uri uri = MediaStore.Audio.Media.getContentUriForPath(ringtoneFile.getAbsolutePath());

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


        RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM, newUri);

        Toast.makeText(this, "Completed.", Toast.LENGTH_SHORT).show();

    }