установить звук в качестве мелодии звонка или уведомления в приложении для Android - PullRequest
0 голосов
/ 05 февраля 2011

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

Больше ничего не могу найти по этой теме. Пожалуйста, помогите мне, и я все погуглил, чтобы найти ту же информацию.

Я хочу иметь возможность запрограммировать звуковую панель для установки звука в качестве мелодии звонка или уведомления в Android / Java.

спасибо.

Полагаю, мне следует добавить код, который я полагаю. :) - Я знаю, что это просто, но это доставляет мне такие трудные времена, и я действительно хотел бы знать эту часть. меню появляется, но его не сохраняют в файл SDCard. я просто понятия не имею, что здесь происходит в Java / Android. я парень из php, ты за помощь

            Button btn = (Button) findViewById(R.id.sound1);
            registerForContextMenu(btn);
        }

        @Override
        public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
            menu.setHeaderTitle("Set as...");
            menu.add(0, v.getId(), 0, "Ringtone");
            menu.add(0, v.getId(), 0, "Notification");
        }

        @Override
        public boolean onContextItemSelected(MenuItem item) {
            if(item.getTitle()=="Ringtone"){function1(item.getItemId());}
            else if(item.getTitle()=="Notification"){function2(item.getItemId());}
            else {return false;}
        return true;
        }

        public void function1(int id){
            Toast.makeText(this, "Ringtone Saved", Toast.LENGTH_SHORT).show();
        }
        public void function2(int id){
            Toast.makeText(this, "Notification Saved", Toast.LENGTH_SHORT).show();
        }




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

         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="/sdcard/media/audio/ringtones/";
         String filename="sound1.ogg";

         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, "sound1");
         values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
         values.put(MediaStore.Audio.Media.ARTIST, "we");
         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, false);

         //Insert it into the database
         this.getContentResolver().insert(MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()), values);

         return false;}

};

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

попробуйте конвертировать ваш звуковой файл из .ogg в .mp3. Медиаплеер не может воспроизводить файлы .ogg из моего опыта. Если вы исправите это должно работать.

0 голосов
/ 30 марта 2012

Возможно, что-то связано с вашими разрешениями (вам могут потребоваться разрешения на хранение данных).

...