Chức năng của chương trình như sau: người dùng có danh sách số điện thoại, mà điện thoại chỉ có thể rung khi có cuộc gọi đến khi không có ứng dụng nào trên toàn hệ thống cung cấp rung (như vậy như ở chế độ tắt tiếng). Tôi biết rằng điều này là bằng cách nào đó chống lại các quy tắc, cho rằng một ứng dụng nên tôn trọng các thiết lập của người dùng, nhưng ứng dụng được giới hạn ở một số người dùng nhất định với nhu cầu này. Tôi đã thử hai cách nhưng không ai trong số họ là thỏa mãn:Cách rung tùy chỉnh cho các cuộc gọi đến cụ thể
Nghe tình trạng điện thoại và trực tiếp kích hoạt các dịch vụ rung với mô hình của riêng tôi (với
Vibrator.vibrate()
). Phương pháp này có hiệu quả mà không có cuộc gọi đến nào được thực hiện ngẫu nhiên khi điện thoại ở trạng tháiCALL_STATE_RINGING
và tôi đoán đó là do xung đột với ứng dụng toàn hệ thống thực sự xử lý rung khi có cuộc gọi đến.Đánh giá liệu điện thoại có rung khi có cuộc gọi đến hay không (với
AudioManager.shouldVibrate()
) và quyết định có thay đổi cài đặt rung (vớiAudioManager.setRingerMode()
vàAudioManager.setVibrateSetting()
) hay không. Nếu cài đặt rung được thay đổi bởi ứng dụng của tôi, chúng sẽ được khôi phục sau khi điện thoại di động quay trở lại trạng tháiCALL_STATE_IDLE
. Phương pháp này, tuy nhiên, vẫn không hoạt động đôi khi, mà không có bất kỳ dấu hiệu của lý do.
Tôi hy vọng ai đó có thể đưa ra một số lời khuyên về vấn đề này. Bình luận về hai cách này hoặc gợi ý khác được hoan nghênh.
Bất kỳ sự tiến bộ về điều đó? – Rizon
@Rizon Đáng buồn là không, và câu hỏi này kiếm cho tôi một huy hiệu tumbleweed. – peter
Điều này không giống nhau nhưng ai đó đã cố gắng vô hiệu hóa rung khi thực hiện cuộc gọi và điều đó là không thể, nhưng những phát hiện thú vị với bạn: http://stackoverflow.com/q/8065862/969325 – Warpzit