2012-12-19 40 views
5

Trong ứng dụng của tôi, tôi đã thực hiện cuộc gọi đi và tôi đang sử dụng PhoneStateListener để biết trạng thái cuộc gọi.Thoát trạng thái cuộc gọi được trả lời trong Android 2.2+

Bất cứ khi nào tôi bắt đầu thực hiện cuộc gọi, trạng thái điện thoại là TelephonyManager.CALL_STATE_OFFHOOK. Khi người nhận cuộc gọi trả lời cuộc gọi, tôi không nhận được bất kỳ thay đổi nào trong trạng thái của điện thoại.

Tôi đã thử nhiều nhưng không thể tải trạng thái được trả lời này. Ai đó đã nói sử dụng HFP của bluetooth (Hands Free Profile) để nhận trạng thái trả lời cuộc gọi. Nhưng tôi đã không nhận được bất kỳ thông tin nào về HFP từ trang web dành cho nhà phát triển Android.

Nếu bất kỳ ai gặp phải vấn đề tương tự và nhận giải pháp, vui lòng cung cấp các đề xuất có giá trị của bạn.

Trả lời

0

Tôi cũng gặp vấn đề tương tự. Đây có thể không phải là câu trả lời cho câu hỏi của bạn. Tôi chỉ chia sẻ những gì tôi đã làm.

Tôi đã có hoạt động mở Liên hệ và có thể thực hiện cuộc gọi. Những gì tôi muốn là, để biết liệu cuộc gọi có thành công hay không (tức là người nhận đã trả lời cuộc gọi).

Tôi không tìm thấy giải pháp nào tại thời điểm đó bằng PhoneStateListener.

Vì vậy, khi làm việc xung quanh, những gì tôi đã làm được kiểm tra Nhật ký cuộc gọi nếu có cuộc gọi đi đến số điện thoại của liên hệ đó sau khi bắt đầu Hoạt động liên hệ.

Xem liệu sự giúp đỡ của anh ấy.

+0

Tôi đã nghe điều này, nhưng khi chúng tôi phải kiểm tra nhật ký cuộc gọi? Có bất kỳ người nghe thay đổi nhật ký cuộc gọi hoặc một số điều như thế không? –

+0

kiểm tra điều này nếu nó có thể giúp bạn http://stackoverflow.com/questions/4422410/how-to-implement-a-contentobserver-for-call-logs –

+0

Điều này sẽ không hoạt động. Nhật ký cuộc gọi sẽ vẫn ghi lại thời lượng bắt đầu từ thời điểm điện thoại được quay số. Bạn không thể phân biệt giữa thời gian quay số và trạng thái trả lời. Hiện tại không có giải pháp để xác định xem một cuộc gọi đã được trả lời chưa. – AndroidDev

0

bạn muốn một cái gì đó cụ thể cho bluetooth? Nếu không tôi có thể cung cấp nguồn

1

Các CALL_STATE_OFFHOOK không thay đổi khi cuộc gọi được trả lời bởi recepient: trạng thái cuộc gọi

Device: Off-móc. Ít nhất một cuộc gọi tồn tại mà đang quay số, hoạt động hoặc đang chờ và không có cuộc gọi nào đang đổ chuông hoặc chờ.

Trạng thái không được thay đổi miễn là điện thoại đang được gọi, cho dù điện thoại có được trả lời hay không.

Câu hỏi này đã được hỏi nhiều mục và cho đến nay không có mục nào trong số những mục mà tôi tìm thấy đã được giải quyết: Detect if an outgoing call has been answered, Android : How to get a state that the outgoing call has been answered?, Android : How to get a state that the outgoing call has been answered? (Có nhiều thứ khác). Các giải pháp được cung cấp ở đó dựa vào trạng thái CALL_STATE_OFFHOOK để thay đổi khi cuộc gọi được trả lời, điều này không xảy ra.

Dường như không có API công khai nào có thể được sử dụng để nhận trạng thái cuộc gọi đi. Cách giải quyết tốt nhất tôi thấy là những gì Vivek Khandelwal đề xuất., Nó không quá dài để viết mã cũng không có chi phí hiệu suất cao. Trừ khi thêm quá nhiều quyền (Bây giờ bạn cần thêm READ_CALL_LOGS) là một vấn đề, hãy sử dụng nó.

Các vấn đề liên quan