Установка аудио файла в качестве мелодии звонка не выполняется каждый раз

Я знаю, что этот ответ давался много раз, и это очень простой вопрос, но кое-как, как я не могу этого сделать. Но поверьте мне, я пробовал много других различных решений, но ни одно не помогло мне,

Я пытаюсь установить аудиофайл на мои устройства LeEco Le2, у которых нет карты памяти, я пытаюсь скопировать другой файл из кода на устройство, но каждый раз, когда он ничего не копирует, тот же код, который я пытаюсь использовать на симуляторе (Genymotion) тогда он работает нормально, я не понимаю, в чем проблема и где именно.

Я пытаюсь с таким большим количеством различных кодов безуспешно, я получил так много ссылок с SO и других форумов, но любой код не работает ниже кода ссылки именно то, что мне нужно, и я попробовал это также, но это также не работает установка аудио файла в качестве мелодии звонка,

Ниже мой код.

public boolean saveas(int ressound) {
        InputStream fIn = getBaseContext().getResources()
                .openRawResource(this.songidlist[this.currenttrack].intValue());
        try {
            byte[] buffer = new byte[fIn.available()];
            fIn.read(buffer);
            fIn.close();
            String path = Environment.getExternalStorageDirectory() + "/sounds/media/";
            String filename = "Ring.mp3";
            if (!new File(path).exists()) {
                new File(path).mkdirs();
            }
            try {
                FileOutputStream save = new FileOutputStream(new StringBuilder(String.valueOf(path)).append(filename).toString());
                save.write(buffer);
                save.flush();
                save.close();
                sendBroadcast(new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE", Uri.parse("file://" + path + filename)));
                File k = new File(path, filename);
                ContentValues values = new ContentValues();
                values.put("_data", k.getAbsolutePath());
                values.put(PlusShare.KEY_CONTENT_DEEP_LINK_METADATA_TITLE, "RingTone");
                values.put("mime_type", "audio/mp3");
                values.put("artist", "Test");
                values.put("is_ringtone", Boolean.valueOf(true));
                values.put("is_notification", Boolean.valueOf(false));
                values.put("is_alarm", Boolean.valueOf(false));
                values.put("is_music", Boolean.valueOf(false));
                Uri uri = Media.getContentUriForPath(k.getAbsolutePath());
                getContentResolver().delete(uri, "_data=\"" + k.getAbsolutePath() + "\"", null);
                RingtoneManager.setActualDefaultRingtoneUri(this, 1, getContentResolver().insert(uri, values));
                return true;
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                return false;
            } catch (IOException e2) {
                e2.printStackTrace();
                return false;
            }
        } catch (IOException e3) {
            return false;
        }
    }

получить следующее исключение

09-12 01:36:58.279: W/System.err(2474): java.io.FileNotFoundException: /storage/emulated/0/sounds/media/Ring.mp3: open failed: ENOENT (No such file or directory)
09-12 01:36:58.280: W/System.err(2474):     at libcore.io.IoBridge.open(IoBridge.java:452)
09-12 01:36:58.280: W/System.err(2474):     at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
09-12 01:36:58.280: W/System.err(2474):     at java.io.FileOutputStream.<init>(FileOutputStream.java:127)
09-12 01:36:58.280: W/System.err(2474):     at java.io.FileOutputStream.<init>(FileOutputStream.java:116)
09-12 01:36:58.280: W/System.err(2474):     at com.appsworld.shivringtone.SplashActivity.saveas(SplashActivity.java:307)
09-12 01:36:58.280: W/System.err(2474):     at com.appsworld.shivringtone.SplashActivity$C02832$C02821.onClick(SplashActivity.java:166)
09-12 01:36:58.280: W/System.err(2474):     at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1108)
09-12 01:36:58.280: W/System.err(2474):     at android.widget.AdapterView.performItemClick(AdapterView.java:310)

Пожалуйста, помогите мне решить. Я также дал надлежащее разрешение в файле манифеста. Я скачал какое-то приложение с рынка и попытался запустить на своем устройстве, которое точно работает нормально, но я не знаю, почему в моем случае этот код не работает. Это потому, что у меня нет SDCARD или чего-то еще?

0 ответов

Другие вопросы по тегам