2013-02-28 30 views
6

Tôi có một ứng dụng đang chạy trên Android chỉ sử dụng chế độ xem web để hiển thị ứng dụng web di động và tại một số điểm sử dụng GPS của thiết bị để có được vị trí của chúng.tìm hiểu xem chế độ tiết kiệm năng lượng đã được bật chưa - Android SDK

Tôi có ChromeWebClient tùy chỉnh v.v. và có vị trí của chúng độc đáo ngoại trừ trên các thiết bị mà Chế độ tiết kiệm năng lượng được bật? Có anyway trong SDK/API cho tôi để có thể xác định xem người dùng đã bật tính năng này chưa và khuyên họ tương ứng? tôi không thể tìm thấy bất cứ điều gì trong tài liệu vì vậy tôi đang giả định không nhưng giá trị một shot,

Chúc mừng,

Lee

+0

Bạn có ý nghĩa gì với 'Chế độ tiết kiệm năng lượng'? Ví dụ: –

+0

@RaghavSood Trên Galaxy S4. thiết bị có 'Chế độ tiết kiệm điện' có thể được bật và chỉ khi điều này được bật, tôi có gặp sự cố khi nhận vị trí GPS từ Ứng dụng web. Nếu không phải chế độ tiết kiệm năng lượng, tôi có thể tìm hiểu xem ứng dụng có được phép sử dụng vị trí GPS không? – theiOSDude

+0

AFAIK, đó không phải là tính năng AOSP chính thức, do đó, dường như SDK công khai sẽ không có phương pháp để quan sát nó. Samsung có thể đã thêm một API hoặc một tùy chọn cho các lớp Cài đặt, nhưng tôi không thể nói chắc chắn. –

Trả lời

5

Sau reeding các ý kiến ​​

Theo kinh nghiệm của tôi Samsung, cũng như HTC, là một trong những nhà sản xuất sửa đổi hệ điều hành Android theo những cách không thể đoán trước nhất. Họ thêm các chức năng và chế độ mới, chẳng hạn như tiện ích khởi chạy chuyển đổi 4G và "chế độ tiết kiệm năng lượng". Chúng sửa đổi các yêu cầu quyền đối với phương pháp SDK được ghi lại, tức là để bật bluetooth trên thiết bị Samsung, ứng dụng của bạn cần phải có và thêm quyền android.permission.BLUETOOTH, trong khi cổ phiếu Android chỉ cần android.permission.BLUETOOTH_ADMIN. Và còn nhiều hơn nữa.

Ngắn câu chuyện ngắn, như @RaghavSood đã chỉ ra, "chế độ tiết kiệm năng lượng" không phải là tính năng chính thức của AOSP và không có cách nào để phát hiện nó qua SDK chính thức. Có một cách có thể làm thế nào bạn có thể làm việc xung quanh nó mặc dù. Tôi tin rằng rất có thể ứng dụng của bạn hoạt động sai trong chế độ tiết kiệm năng lượng vì chế độ này tắt GPS. Bạn có thể xác nhận điều đó bằng cách định cấu hình chế độ tiết kiệm năng lượng trong cài đặt để tắt tính năng vô hiệu hóa GPS (không thể cụm từ này tốt hơn, xin lỗi) - first link from google with steps. Sau đó kiểm tra ứng dụng. Nó có hoạt động không? Nếu có, sau đó bạn đã rootcaused vấn đề và bây giờ công việc của bạn là để cho người dùng biết rằng ứng dụng của bạn sẽ không chạy mà không có GPS. Bạn có thể đặt một số mã vào ứng dụng của mình để phát hiện xem dịch vụ GPS có được bật hay không hiển thị hộp thoại cảnh báo nếu không. Mã trong hoạt động của bạn có thể trông giống như sau:

LocationManager lm = getSystemService(Context.LOCATION_SERVICE); 
if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    //Show a notification prompting user to switch on GPS. 
} 

Bạn thậm chí có thể phức tạp hơn và làm cho ứng dụng phát hiện nhà sản xuất thiết bị hiển thị thông báo tùy chỉnh trên tất cả các thiết bị Samsung.

+0

Tôi đã đi với giải pháp của bạn vì đây là giải pháp khả thi :) cảm ơn cho phản ứng chi tiết của bạn :) Burrows – theiOSDude

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