Вопрос:
Я хочу конкретно знать, кто закончил звонок. Я установил широковещательный приемник для
«android.intent.action.PHONE_STATE»
Когда я обнаруживаю переход от Off hook к простоя, я знаю, что вызов закончился. Но откуда я узнаю, кто закончил звонок?
Спасибо, тонна!
Лучший ответ:
Я боюсь, что в настоящее время нет способа определить, нажал ли пользователь “конечный вызов” или если другой конец (или завершается в групповом вызове) завершен. Единственным обходным решением, которое я могу предложить, является наблюдение за другими состояниями, чтобы наблюдать, был ли встречен звон телефона. В таком случае вы можете предположить, что пользователь делает телефонный звонок, а не получает его.
Помните, что существуют другие проблемы, связанные с PHONE_STATE, например, обработка нескольких вызовов одновременно.
В ретроспективе я не совсем уверен, что вы имеете в виду с “кем”. Что касается других приложений, заканчивающих вызов: нет официального API для завершения телефонных звонков; только через отражение приложение может вызвать функцию TelephonyService endCall(). Здесь также невозможно определить, был ли вызов завершен с помощью взаимодействия с пользователем или нет.