Телефон зависает при записи телефонного звонка - PullRequest
2 голосов
/ 18 марта 2012

Я пытаюсь создать приложение, которое должно записывать телефонные звонки (в основном исходящие)

Я попытался установить источник мультимедиа в MediaRecorder.AudioSource.VOICE_CALL, что всегда приводит к зависанию приложения.

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

Я пробовал следующие разрешения:

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.Permissions.PROCESS_OUTGOING_CALLS"/>

Но ничего не работает.

Любые советы по записи телефонных звонков.

Кроме того, я нашел несколько старых сообщений, в которых говорится, что только некоторые телефоны позволяют записывать голосовые вызовы.

Есть ли способ программно определить, работает ли это приложение на таком телефоне (если нет, я могу указать им использовать громкую связь или что-то в этом роде)

Спасибо!

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

Вместо непосредственной обработки записи, почему бы не использовать асинхронную задачу, создав подкласс вашей записи? Это может улучшить производительность вашего приложения и избежать сбоев. Надеюсь, что http://developer.android.com/resources/articles/painless-threading.html даст вам лучшее представление в этом направлении.

1 голос
/ 21 марта 2012

Чтобы добиться того, что вам понадобится все это, я считаю:

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CALL_PHONE" />

и, скорее всего,

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

Конечно, вы хотели бы быть уверены, что все соответствующие предупрежденияи EULA на месте.

Не уверен, что то, что вы опубликовали

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

, является опечаткой, но оно должно быть

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

КакВы сказали: старые сообщения говорят о том, что некоторые устройства не поддерживают функцию записи вызовов.

  • Можно ли как-нибудь протестировать на других устройствах или попросить друзей или небольшую группу тестеров попробовать на других устройствах ... проблема, похоже, полностью зависит от устройства .

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

...