마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 벨소리 지정 봐주세요

0 추천
raw에 있는 파일을 벨소리로 지정하고 싶습니다.

일단 기본적인 소스를 가지고 있고요.

무엇이 틀렸는지 봐주셨으면 합니다..

 

String filepath = "android.resource://"+getPackageName()+"/raw/mi";
        File file = new File(filepath);

        Log.e("MainActivity", file.getAbsolutePath());
        try {
            ContentValues values = new ContentValues();
//            values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
            values.put(MediaStore.MediaColumns.DATA, "android.resource://"+getPackageName()+"/raw/mi");
            values.put(MediaStore.MediaColumns.TITLE, "longlong4");
            values.put(MediaStore.MediaColumns.SIZE, 215454);
            values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
            values.put(MediaStore.Audio.Media.DURATION, 230);

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

//            Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());
            Uri uri = MediaStore.Audio.Media.getContentUriForPath("android.resource://"+getPackageName()+"/raw/mi");
//            getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + file.getAbsolutePath() + "\"", null);
            getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + "android.resource://"+getPackageName()+"/raw/mi" + "\"", null);
            Uri newUri = getApplicationContext().getContentResolver().insert(uri, values);

            RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_NOTIFICATION, newUri);
            RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_ALARM, newUri);
            RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_ALL, newUri);

        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "벨소리 설정에 실패했습니다.", Toast.LENGTH_SHORT).show();
            return ;
        }
        Toast.makeText(getApplicationContext(), "벨소리 설정이 완료되었습니다.", Toast.LENGTH_SHORT).show();

 

 

 

 

 

잘부탁드립니다.
왕초보미 (160 포인트) 님이 2017년 10월 22일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...