7

Chcę opracować aplikację, w której, jeśli dzwoniący zadzwoni, połączenie powinno zostać odebrane automatycznie bez udziału użytkownika, a dzwoniący może usłyszeć nagrany wcześniej głos, który jest już zapisany i zapisany. Plik audio powinien być w .wav format.I szukał pomocy w google, ale dowiedziałem się, że nie jest to możliwe w systemie Android, ale są pewne aplikacje na Androida, które mają tę samą funkcjonalność. Więc myślę, że jest jakaś możliwość. Przepraszam, jeśli pytanie jest błędne. Byłbym wdzięczny, gdyby ktoś mi pomógł. Używam Eclipse Helios z wtyczką ADT. Wypróbowałem poniższy kod, ale nie wyszło. Jeśli ktoś zna odpowiedź, pomóż mi. Użyłem odbiornika telewizyjnego do odczytania zmian stanu telefonu. W CALL_STATE_OFFHOOK napisałem poniższy kod.Jak wysłać nagrany plik (wav) podczas połączenia głosowego?

case TelephonyManager.CALL_STATE_OFFHOOK: 
Toast.makeText(context, "Call Picked..", Toast.LENGTH_LONG) .show(); 
Log.d("received", "Call Picked...."); 
final MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.music_file); 
        mPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL); 
        mPlayer.prepareAsync(); 
        mPlayer.start(); 
        mPlayer.setOnErrorListener(new OnErrorListener() { 

         @Override 
         public boolean onError(MediaPlayer mp, int what, int extra) { 
// TODO Auto-generated method 
mPlayer.reset(); 
          return true; 
         } 
        }); 
        AudioManager am=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 
        am.setMode(AudioManager.MODE_IN_CALL); 
        am.setSpeakerphoneOn(false); 
        am.setMicrophoneMute(true); 
        Log.d("in call","sent audio"); 
        mPlayer.reset(); 
        mPlayer.release(); 
        break; 
+0

Nie próbowałem tego jeszcze zaimplementować - po prostu robię małe badania. O ile rozumiem, jest to możliwe! Pomyśl przez chwilę o głośnikach Bluetooth i tym podobnych rzeczach. Przenoszą dźwięk do telefonu podczas rozmowy. Teraz potrzebuję tej funkcji. Spróbuję to rozgryźć. –

+0

@YuraSokolov, znalazłeś coś jeszcze? Byłbym bardzo wdzięczny gdybyś mógł nas zaktualizować :) – longwalker

+0

Nie, przepraszam @ longwalker, nie mogłem znaleźć rozwiązania. –

Odpowiedz

3

Podłączenie dźwięku do rozmowy telefonicznej jest całkowicie nieobsługiwane przez urządzenia z systemem Android.

+2

Lub raczej nieobsługiwany przez _software_. Istnieją platformy sprzętowe (dość powszechne) używane przez telefony z systemem Android, które obsługują wstrzykiwanie połączenia w górę. Ale nie ma na nim API w Androidzie (ani Java API, ani natywny), więc nie ma sposobu, aby aplikacje z niego skorzystały. – Michael

+1

Całkowicie zgadzam się z tobą, MarsAtomic i Michael. Ale w sklepie Google Play jest kilka aplikacji na Androida, które mają tę samą funkcjonalność. Jeśli nie jest możliwe, w jaki sposób działają te aplikacje. Proszę mi pomóc, ponieważ jestem nowy w Androidzie i muszę zrobić ten sam projekt. Z góry dziękuję. – kishwar

+0

Przekręć głośność pliku dźwiękowego maksymalnie, aby mikrofon go podniósł. To tyle, ile możesz, o ile wiem. – MarsAtomic

0

"Auto Call Answer" autorstwa DevIndia Infoway znajduje się na playstore. Działa poprzez odtwarzanie pliku mp3 przy włączonym zestawie głośnomówiącym. Tak więc druga strona usłyszy, co się gra (a także, czy w pokoju jest inny hałas). Niezupełnie rakieta-nauka.

+0

Czy możemy dokonać inżynierii wstecznej tej aplikacji? Czy ktoś może mi powiedzieć, w jaki sposób mogę dokonać inżynierii wstecznej tej aplikacji? Chcę poznać kod do wdrożenia tej funkcji. – kishwar

+0

@kishwar możesz zrobić inżynierię odwrotną za pomocą ** konwertera ** dex2jar ** dostępnego bezpłatnie. przy użyciu ** dex2jar ** otrzymasz plik JAR, który można dalej przekształcić w klasę Javy przy użyciu narzędzia ** jd-gui **. Pamiętaj, używając ** dex2jar ** tylko plik Java może zostać osiągnięty, jeśli chcesz zasobu i manifestu, a następnie użyj ** apktool **. – arvindsingh530