2017-12-09 104 views
11

Lên đến Android 7.1 nó đã có thể kết thúc cuộc gọi đến bằng cách sử dụng các phương pháp ITelephony.endCall() và đưa ra ứng dụng của bạn cho phép android.permission.CALL_PHONEandroid.permission.READ_PHONE_STATE.Làm thế nào để kết thúc cuộc gọi đến programatically trên Android 8.0 Oreo

Khi làm như vậy trên Android 8.0 Oreo (API 26), tôi nhận được lỗi này

12-09 18: 11: 25,195 16.833-16.833/li.doerf.leavemealone E/TelephonyServiceCallHangup: Thiếu phép MODIFY_PHONE_STATE, không thể gác máy gọi

MODIFY_PHONE_STATE là một quyền được bảo vệ, ứng dụng của tôi không thể nhận được. Có cách nào để lập trình kết thúc cuộc gọi đến trên Android 8.0+ không?

+0

Xem trả lời này, Hy vọng điều này sẽ giúp: [End Incoming Call Android] (https://stackoverflow.com/a/18065415/4575580) –

+0

Tôi đã thử với giải pháp đó.Không hoạt động. Nhưng vấn đề của tôi không phải là ngắt kết nối từ phiên bản 8.0 Oreo – Santosh

+0

Đáng tiếc là điều này không còn hoạt động trong Android 8.0+ (Oreo). Có ai biết lựa chọn thay thế cho điều này mà làm việc trong Oreo +? – doerfli

Trả lời

1

Vui lòng kiểm tra dưới 2 liên kết đó là hữu ích cho bạn:

Permission is only granted to system app, in Manifest

https://source.android.com/devices/tech/config/perms-whitelist

trên liên kết được sử dụng cho danh sách trắng cho phép MODIFY_PHONE_STATE của bạn. Đây là mục đích bảo mật vì vậy nếu bạn muốn truy cập vào loại quyền này vào thời điểm đó để liệt kê danh sách cho phép của bạn sau khi bạn sẽ gọi cho các hoạt động của mình.

Tôi nghĩ rằng theo bản cập nhật mới nhất của android oreo, bạn có thể nhận cuộc gọi điện thoại trong hoạt động của mình bằng cách sử dụng phương pháp dựng sẵn nhưng không cung cấp cho nhà phát triển xử lý hết cuộc gọi. Cũng nhận được (đọc) số điện thoại của cuộc gọi nhận nhưng bạn cần phải xác định sự cho phép của nó. Tôi nghĩ rằng mô tả ở trên của tôi là đủ để hiểu

Hy vọng bạn hiểu và đóng câu hỏi này.

+0

Giải pháp này chỉ hoạt động cho các điện thoại được root hoặc chạy aosp, đây không phải là một tùy chọn cho một ứng dụng thị trường thông thường. – doerfli

+0

Sau đó, chúng tôi không thể làm bất cứ điều gì vào nó @ doerfli. –

1

Thử sử dụng sự phản chiếu như trong câu trả lời được minh họa here.

Nó hoạt động với quyền READ_PHONE_STATE và CALL_PHONE. Những điều khoản có sẵn cho các ứng dụng không thuộc hệ thống, theo android docs

1

Bạn cần phải thêm giấy phép này trong manifest- của bạn:

<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/> 
Các vấn đề liên quan