Vì sao giả lập tự tắt trong nền trên Xiaomi?

MIUI và HyperOS (Xiaomi, Redmi, POCO) đóng ứng dụng nền mạnh tay hơn các hãng khác. Hãy bật tự khởi chạy cho Mock Location và bỏ giới hạn pin — ứng dụng gợi ý điều này ngay ở lần mở đầu tiên.

Giả lập được duy trì bởi một dịch vụ nền, và “tự tắt” gần như luôn có nghĩa là ROM đã đóng nó. Trong nhật ký hệ thống, điều này hiện ra là tiến trình bị hệ thống buộc dừng, không phải lỗi của ứng dụng.

Sau đó xảy ra một điều không hiển nhiên: nhà cung cấp vị trí thử nghiệm vẫn được đăng ký trong Android với giá trị ghi cuối cùng, nhưng không ai ghi tọa độ mới vào nữa — tiến trình tạo ra chúng không còn tồn tại. Nhìn từ ngoài giống như “giả lập bị đơ”: điểm vẫn vậy nhưng không cập nhật nữa, và sau một lúc hệ thống trả về vị trí thật. Vì thế vấn đề thường không được nhận ra ngay.

Người dùng Xiaomi, Redmi và POCO gặp chuyện này nhiều nhất: MIUI và HyperOS quản lý tiến trình nền chặt hơn các hãng khác. Cách khắc phục gồm ba cài đặt — tự khởi chạy, bỏ giới hạn pin và khóa ứng dụng trong danh sách gần đây; hướng dẫn kèm đường dẫn chính xác có trong hướng dẫn riêng cho Xiaomi. Nếu chỉ làm một trong ba, hãy làm tự khởi chạy: thiếu nó, sau khi tiến trình bị đóng, hệ thống hoàn toàn không đưa dịch vụ trở lại, và giả lập sẽ không quay lại cho đến khi bạn tự mở ứng dụng. Khi bật tự khởi chạy, hệ thống đưa dịch vụ trở lại trong vài giây, ứng dụng nhận trạng thái đã lưu và tiếp tục mà bạn không cần làm gì.

Trên Samsung nguyên nhân giống vậy, nhưng cơ chế có tên “Ứng dụng đang ngủ”: One UI tự đưa vào trạng thái ngủ những gì bạn không dùng một thời gian, và ứng dụng giả lập trông như không hoạt động đúng lúc điện thoại nằm trong túi. Đường dẫn cho One UI có trong hướng dẫn cho Samsung. Trên Huawei và Honor, hãy tắt quản lý khởi chạy tự động và bật cả ba công tắc — tự khởi chạy, khởi chạy thứ cấp và chạy trong nền; chi tiết có trong hướng dẫn cho Huawei.

Về phía mình, ứng dụng làm hai việc độc lập. Khi được mở, nó so sánh trạng thái đã lưu với trạng thái thực tế và, nếu tiến trình đã chết, đưa giả lập trở lại — cách này luôn hoạt động. Ngoài ra, một bộ hẹn giờ giám sát định kỳ kiểm tra trạng thái trong nền và cố tự khôi phục dịch vụ. Nhưng cả hai đều có giới hạn: nếu ROM cấm ứng dụng khởi chạy trong nền, dịch vụ không thể quay lại nếu thiếu bạn — mã đơn giản là không chạy vào lúc đó. Vì vậy không thể thay thế cài đặt ROM bằng phần mềm.

Cách dễ nhất để kiểm tra kết quả là thông báo thường trực trong ngăn thông báo: khi nó còn đó, dịch vụ còn sống. Nếu nó biến mất, hệ thống vẫn đã đóng dịch vụ, và bạn nên quay lại các cài đặt ở trên.

Vẫn còn thắc mắc? Viết cho bộ phận hỗ trợ.