2014-06-26 16 views
5

Tôi có 2 ứng dụng VoIP mà tôi đang phát triển cần phải làm việc cùng nhau; một là một ứng dụng softphone (App A) sử dụng các chế độ âm thanh khác nhau như mong đợi, tức là RINGTONE, IN_COMMUNICATION, vv Ứng dụng khác (App B) cần chế độ âm thanh NORMAL. Tôi cố gắng để đảm bảo rằng họ chơi tốt với nhau vì vậy khi softphone App A hoàn thành một cuộc gọi, nó sẽ trả về chế độ âm thanh là NORMAL. Tương tự như vậy, nếu ứng dụng B cần hoạt động ở giữa ứng dụng A có thể đang hoạt động, nó sẽ lưu chế độ âm thanh mà nó tìm thấy và khôi phục lại khi hoàn thành.Android AudioManager.setMode (MODE_NORMAL) không thành công

Ví dụ, đối với một cuộc gọi trong nước, App A có thể thay đổi chế độ âm thanh như vậy:

  1. MODE_RINGTONE khi cuộc gọi đến
  2. MODE_IN_COMMUNICATION khi cuộc gọi được kết nối
  3. MODE_NORMAL sau khi cuộc gọi được kết thúc

Nếu ứng dụng B cần thực hiện điều gì đó trong khi cuộc gọi được kết nối (bước 2 ở trên), nó sẽ

  1. tiết kiệm MODE_IN_COMMUNICATION
  2. bộ MODE_NORMAL
  3. làm những gì nó cần phải làm
  4. khôi phục MODE_IN_COMMUNICAITON

Cả hai ứng dụng được Android AudioManager sử dụng bối cảnh ứng dụng của họ. Vấn đề tôi gặp phải, và rằng tôi không hiểu, là khi App B đi qua các bước trên, App A thất bại trong nỗ lực trả lại chế độ âm thanh thành NORMAL sau khi cuộc gọi kết thúc.

myAudioManagerReference.setMode(AudioManager.MODE_NORMAL); 
if (myAudioManagerReference.getMode() != AudioManager.MODE_NORMAL) 
    Log.w(CLASSTAG, "failure to set audio mode to MODE_NORMAL); 

Có thể ứng dụng B của tôi có một số loại khóa trên chế độ AudioManager không? Hoặc đã thay đổi quyền cho ứng dụng A sao cho nó không thể thay đổi chế độ trở về NORMAL? Tôi đã tìm thấy rằng một khi tôi thoát khỏi ứng dụng B, sau đó ứng dụng A có thể thay đổi thành công chế độ thành NORMAL.

Trả lời

2

Điều này có vẻ như CÓ THỂ rất tốt là vấn đề về phần sụn. Tôi thấy các bản ghi đáng ngờ từ trình điều khiển ALSA trên thiết bị này (một thiết bị di động công nghiệp) trông giống như trình điều khiển có thể đang sử dụng sai PID lần để thay đổi chế độ âm thanh. Tôi cũng KHÔNG thể tái tạo cùng một vấn đề trên bất kỳ thiết bị nào khác, kể cả một số từ cùng một nhà sản xuất.

Thật không may, tôi chưa có xác nhận của nhà sản xuất (và người viết trình điều khiển ALSA) rằng đây là trường hợp.

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