Mục lục bài viết
Nhiều người cho rằng chỉ cần thấy chấm cam hoặc biểu tượng micro xuất hiện trên thanh trạng thái là biết ngay app nào đang nghe. Thực tế phức tạp hơn: quyền dùng micro khi đang mở app (ví dụ app ghi âm, app gọi video) khác hẳn về cơ chế cấp phép và giám sát so với quyền chạy micro ở chế độ nền, và hệ điều hành xử lý hai trường hợp này theo hai luồng kỹ thuật riêng biệt.
Micro ở chế độ foreground hoạt động ra sao
Khi một ứng dụng đang hiển thị trên màn hình và người dùng chủ động bấm nút ghi âm hoặc gọi video, hệ điều hành cấp một phiên truy cập micro gắn liền với vòng đời foreground của app đó. Trên iOS, phiên này được quản lý qua AVAudioSession; trên Android là AudioRecord hoặc MediaRecorder API. Ngay khi app bị chuyển xuống nền hoặc màn hình tắt, hệ thống tự động ngắt phiên ghi âm trừ khi app khai báo rõ nhu cầu chạy nền. Đây là lý do phần lớn app không thể “nghe lén” chỉ vì bạn từng cấp quyền micro một lần.
Micro nền cần khai báo riêng và có ràng buộc chặt hơn
Để micro hoạt động khi app không hiển thị trên màn hình, nhà phát triển phải khai báo một background mode riêng trong file cấu hình ứng dụng (Background Modes trên iOS, hoặc foreground service loại microphone trên Android từ bản 10 trở lên). Việc khai báo này không tự động được duyệt âm thầm: cả Apple lẫn Google đều yêu cầu mô tả lý do sử dụng khi app nộp lên kho ứng dụng, và Android buộc hiển thị thông báo cố định trên thanh trạng thái trong suốt thời gian foreground service loại micro đang chạy, để người dùng luôn biết có tiến trình ghi âm nền đang hoạt động.
Vì sao chỉ báo camera/micro không phân biệt hai loại này
Chấm cam trên iOS hay biểu tượng micro trên Android chỉ báo hiệu “micro phần cứng đang được một tiến trình nào đó chiếm dụng”, không phân biệt đó là phiên foreground tạm thời hay phiên nền kéo dài. Vì vậy để biết một app có quyền chạy micro nền hay không, người dùng cần vào phần cài đặt quyền ứng dụng và kiểm tra riêng mục background activity hoặc battery/background usage, thay vì chỉ dựa vào chỉ báo trực quan trên màn hình.
Vì sao quyền micro nền hiếm khi thực sự cần thiết
Rất ít nhóm tính năng cần micro chạy khi app không hiển thị: trợ lý giọng nói kích hoạt bằng từ khóa, app dịch trực tiếp đang gọi, hoặc app y tế theo dõi âm thanh giấc ngủ là những trường hợp hợp lệ. Ngoài các nhóm này, một app mạng xã hội hay app tiện ích thông thường không có lý do kỹ thuật để yêu cầu micro nền, và việc một app như vậy xin quyền này là dấu hiệu nên xem lại mục đích sử dụng trước khi đồng ý.
Hiểu nhầm thường gặp
“Cấp quyền micro một lần là app có thể nghe bất cứ lúc nào, kể cả khi đã tắt app” là suy nghĩ không chính xác. Quyền micro cấp ở màn hình xin quyền chỉ mở khả năng truy cập phần cứng micro; việc truy cập đó có được duy trì khi app rời khỏi foreground hay không phụ thuộc vào việc app có khai báo và được duyệt background mode microphone riêng hay không. Nếu không có khai báo này, hệ điều hành ngắt kết nối micro ngay khi app rời foreground, bất kể quyền đã cấp trước đó.
Xem thêm
Nội dung này thuộc cụm bài Quyền riêng tư & quyền ứng dụng: tổng hợp bài viết. Xem thêm Đèn báo camera/micro: chỉ báo cảnh báo khi app dùng ngầm hoạt động ra sao.
