Я работаю над проектом, который требует, чтобы мое приложение могло отправлять тональные сигналы DTMF на частоте восходящего канала голоса во время активного вызова.
Мои 2 условия:
Я потратил несколько дней на домашнее задание и знаю, что отправка DTMF во время вызова не поддерживается текущими SDK / стандартными API. Однако, используя соответствующие классы в com.android.internal.telephony
, я надеюсь имитировать, как это делает родное приложение «Телефон». Я следил за этим сайтом о том, как использовать внутренние API-интерфейсы для стандартных сторонних приложений .
Я также настроился на среду разработки Android OS и могу запустить приложение «Телефон» в режиме отладки на эмулятор, чтобы понять его внутреннюю работу.
Я пробовал разные способы на стандартном эмуляторе, но получил следующие ошибки:
После попытки установить переименованное приложение, основанное на исходном коде Phone.apk, используя sharedUserId из android.uid .phone, я получил:
Ошибка установки: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
Несомненно, из-за того, что у меня нет системного сертификата для его подписания.
После попытки написать собственное приложение на основе соответствующего тона DTMF отправляя код из источника Phone.apk, я получаю следующую ошибку при настройке PhoneFactory:
java.lang.SecurityException: Permission Denial: не разрешено отправлять широковещательную рассылку android.provider.Telephony.SPN_STRINGS_UPDATED.
Без сомнения, из-за на то, что у моего приложения нет нужных разрешений, хотя AndroidManifest.xml установка с теми же разрешениями, что и Phone.apk.
Я не понимаю, что еще я мог бы попробовать. Есть ли у кого-нибудь предложения?
Заранее спасибо, Саймон.