2014-06-23 18 views
5

Tôi hiện đang sử dụng quyền READ_PHONE_STATE trong Android để tạm dừng trình phát đa phương tiện của mình khi có cuộc gọi và tiếp tục phát lại khi cuộc gọi kết thúc. Sự cho phép dường như làm cho nhiều người sợ, vì vậy tôi đã tự hỏi liệu có thay thế nào để bắt đầu và dừng cuộc gọi điện thoại mà không có nó. Bất kỳ trợ giúp được đánh giá cao. Cảm ơn!Thay thế quyền READ_PHONE_STATE để nhận thông báo về cuộc gọi

+0

Tôi nghĩ rằng [hỗ trợ lấy nét âm thanh] (http://developer.android.com/training/managing-audio/audio-focus.html) có nghĩa vụ xử lý việc này, mặc dù tôi chưa thử nghiệm phần đó của SDK. – CommonsWare

+0

Cảm ơn bạn. Tôi sẽ xem xét điều này. – codeman

+0

Đã hoạt động! Nếu bạn thêm nó như là một câu trả lời, tôi sẽ chấp nhận nó. Cảm ơn! – codeman

Trả lời

4

Nếu bạn muốn điều chỉnh đầu ra âm thanh của mình để đáp ứng điều gì đó khác muốn thực hiện đầu ra âm thanh (ví dụ: cuộc gọi điện thoại đến), hãy xem trong số audio focus support của Android. READ_PHONE_STATE, như đã nói, là một chút cho phép đáng sợ. Hơn nữa, nó chỉ đề cập đến các cuộc gọi điện thoại và không phải những thứ khác có thể cần khả năng tương tự (ví dụ: các cuộc gọi VOIP, vì AFAIK không liên quan đến công cụ READ_PHONE_STATE -kích hoạt).

-1

Thật không may, tiêu điểm âm thanh không thay thế cho READ_PHONE_STATE. Ứng dụng của tôi phải sử dụng cả hai. Ứng dụng điện thoại chuẩn trên Galaxy S3 I9300/Android 4.3 của tôi dường như không yêu cầu tiêu điểm âm thanh. Lớp TelephonyManager cung cấp cho bạn một cách để phát hiện kết thúc cuộc gọi điện thoại (bằng cách gửi cập nhật trạng thái CALL_STATE_IDLE). AudioManager dường như không làm bất cứ điều gì tương tự, vì vậy ngay cả khi tập trung âm thanh có thể được sử dụng, nó sẽ không hữu ích. Và, từ những gì tôi thấy trong tài liệu, dường như không có quyền hạn hẹp hơn READ_PHONE_STATE cho phép ứng dụng đọc trạng thái điện thoại nhưng không cho phép thông tin cuộc gọi. Nếu tôi sai về bất kỳ điều này, xin vui lòng sửa tôi.

-1

Thật không may, tiêu điểm âm thanh không thay thế cho READ_PHONE_STATE. Ứng dụng của tôi phải sử dụng cả hai. Ứng dụng điện thoại chuẩn trên Galaxy S3 I9300/Android 4.3 của tôi dường như không yêu cầu tiêu điểm âm thanh. Lớp TelephonyManager cung cấp cho bạn một cách để phát hiện kết thúc cuộc gọi điện thoại (bằng cách gửi cập nhật trạng thái CALL_STATE_IDLE). AudioManager dường như không làm bất cứ điều gì tương tự, vì vậy ngay cả khi tập trung âm thanh có thể được sử dụng, nó sẽ không hữu ích. Và, từ những gì tôi thấy trong tài liệu, dường như không có quyền hạn hẹp hơn READ_PHONE_STATE cho phép ứng dụng đọc trạng thái điện thoại nhưng không cho phép thông tin cuộc gọi. Nếu tôi sai về bất kỳ điều này, xin vui lòng sửa tôi.

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