29

Tôi đang làm việc trên trò chơi dành cho thiết bị di động, ứng dụng này sẽ gặp sự cố khi cảnh báo Pin yếu được hiển thị. Nó hoạt động tốt trên bộ nhớ thấp, các cuộc gọi đến và các tin nhắn khác.Mô phỏng pin yếu cho iPhone

Đó là nỗi đau để kiểm tra và gỡ lỗi này, vì tôi không thể tìm ra cách mô phỏng thiết bị đầu cuối hoặc mô phỏng iPhone, vì vậy tôi phải sạc điện thoại một chút, khởi chạy ứng dụng, chờ nó thoát và bắt đầu lại từ đầu.

Có ai biết cách tạo lỗi này theo cách thực tế không? Hy vọng rằng một cái gì đó không phải là quá căng thẳng trên pin iPhone của tôi.

+0

câu hỏi hay. Tôi đã gặp sự cố tương tự –

+0

Khi nào sự cố xảy ra? Khi bạn nhận được "cảnh báo pin yếu" hoặc cái gì khác? –

+0

Ngay khi cảnh báo màu xanh xuất hiện, ứng dụng gặp sự cố. Cảnh báo pin vẫn hoạt động. –

Trả lời

10

Thật không may, không có cách nào tốt để mô phỏng môi trường pin yếu. Bạn thực sự rất có thể sẽ cần phải sạc pin trên thiết bị của bạn cho đến khi nó ở ngay phía trên trạng thái "pin yếu" và sau đó gỡ lỗi ứng dụng của bạn.

Để giải quyết những gì người khác đã nói:

  1. Không có cách nào để mô phỏng thông báo pin thấp. Dự án mà @Bo. được cung cấp không có gì nhiều hơn so với lịch trình ngẫu nhiên UILocalNotifications. Nó không phải là tất cả những gì khác nhiều so với chỉ hiển thị UIAlertView trong ứng dụng của bạn.
  2. Bạn có thể thử những gì @Andrew R. cho biết và sử dụng các phương thức riêng được tìm thấy trong số UIDevice header. Nhưng chắc chắn rằng bạn sẽ bắt chước chính xác tác động của một môi trường pin thực tế thực.

Mặc dù thật khó để chờ thiết bị thực sự đạt trạng thái pin yếu, bạn có thể thêm một số mã tháo pin vào ứng dụng để hỗ trợ bạn. Ví dụ: sử dụng GPS có thể tiêu hao pin nhanh hơn một chút.

Chúc may mắn.

1

Bạn đã thử mô phỏng các thông báo pin yếu? Dường như có một dự án nào đó: https://github.com/MegaEduX/LowBattery

+0

Đáng buồn thay, điều này dường như không thực sự tạo ra một đầu ra thực tế cho tôi ... năng lượng thấp. –

-2

Giả sử này là dành cho mục đích thử nghiệm duy nhất, bạn có thể cung cấp cho các cá nhân phương pháp sau đây thử xem:

-(void)_setBatteryState:(int)state; 
-(void)_setBatteryLevel:(float)level; 

Bạn sẽ phải thử nghiệm để xem những gì các thông số mà họ mong đợi hoặc liệu họ có tác động hay không.

+1

trong khi chức năng '_setBatteryLevel' có sẵn trong danh mục, và trong khi trong cateogory đó, gọi' [self performSelector: @selector (_setBatteryLevel :) withObject: [NSNumber numberWithFloat: 0.01]] 'sẽ làm cho giá trị được trả về bởi' [[UIDevice currentDevice] batteryLevel] 'để trả về giá trị bạn đã gửi, nó sẽ không kích hoạt cảnh báo bộ nhớ thấp. –

+0

@ john.k.doe bạn đã thử đặt nó thành 25, 20 chưa? Tôi nghe cảnh báo pin yếu được kích hoạt ở khoảng 5% và cảnh báo chỉ hiển thị khi đạt đến giới hạn mức – onmyway133

0

Trong iOS có cách để mô phỏng "Low Battery"

giám sát pin được kích hoạt bằng cách thiết lập để YES một tài sản của singleton UIDevice:

UIDevice *device = [UIDevice currentDevice]; 
device.batteryMonitoringEnabled = YES; 

iOS cung cấp hai loại sự kiện theo dõi pin, một khi trạng thái thay đổi (vd: sạc, rút ​​phích cắm, sạc đầy) và một cập nhật khi mức sạc của pin thay đổi. Như trường hợp có giám sát gần, bạn đăng ký gọi lại để nhận thông báo:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryLevelDidChangeNotification" object:device]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryStateDidChangeNotification" object:device];