Kể từ API 21, Google đã thêm các tính năng vào android.telecom nói chung, đặc biệt bằng cách triển khai thêm thành viên TelecomManager và thêm InCallService. Điều cuối cùng này được cho là cho phép các ứng dụng bên thứ ba không phải hệ thống cung cấp và thay thế chức năng của hệ thống Gọi màn hình trong ứng dụng gọi điện thoại - Cửa sổ bật lên và cho phép hành động trên các chương trình phát sóng EXTRA_STATE_OFFHOOK
hoặc EXTRA_STATE_RINGING
(tức là đến và đi cuộc gọi điện thoại).Trả lời cuộc gọi đến bằng cách sử dụng android.telecom và InCallService
Hiện tại, chỉ có màn hình này có toàn quyền kiểm soát chuông và cuộc gọi hiện tại và các cuộc gọi hệ thống được liên kết với thông tin chi tiết, bằng quyền hạn chế quyền hạn chế của một số mã AOSP không thể truy cập được bằng phản ánh. Nó đáng chú ý là một trong những phần mã được thay đổi nhiều nhất trong các hương vị ROM của các nhà sản xuất khác nhau, cùng với trình khởi chạy, danh bạ và máy ảnh.
Đây là tất cả rất đẹp nhưng ...
Làm thế nào để bạn thực sự phát triển một bên thứ 3 InCallService?
Cụ thể:
- Làm thế nào để bạn được thông báo, và có được các trường hợp của GSM Calls
- Làm sao người ta trả lời những cuộc gọi
- vòng đời của callbacks là gì trên lớp này
- Google có cung cấp bất kỳ hướng dẫn thực tế cho điều này mà tôi đã không tìm thấy
tôi sẽ không phải là một sk câu trả lời cho tất cả những điều này cùng một lúc, nhưng bất kỳ một câu trả lời có thể liên kết với các câu hỏi khác. Đây là phạm vi rộng nhưng thực chất nó cần phải là: không có ví dụ nào trên web mà tôi gặp phải ngoài mã AOSP và mã đó dựa trên giả định về đặc quyền của root, điều này làm cho nó không thể sử dụng cho phát triển ứng dụng của bên thứ ba mục đích.
Đối với câu hỏi số 1 của bạn, chương trình phát sóng 'android.intent.action.PHONE_STATE' có hoạt động không? –
@SharpEdge bạn nhận được thông báo về "cuộc gọi" nhưng bạn không biết android.telecom.Call - https://developer.android.com/reference/android/telecom/Call.html Với ví dụ như vậy, tôi có thể thực sự Chỉ cần gọi # answer (int videoState) và nhận 2. sắp xếp ra – leRobot
Có vẻ như không có nhiều thông tin ngoài đó - các nhận xét trong câu hỏi này có thể giúp mặc dù: http://stackoverflow.com/q/34861910/334402 . Một điều cần lưu ý chỉ trong trường hợp nó không rõ ràng - API này là để thay thế InCallUI - tức là giao diện người dùng để kiểm soát các cuộc gọi. – Mick