Tôi gặp vấn đề tương tự như bài đăng này: Battery broadcast receiver doesn't work. Nhưng có vẻ như không ai trả lời câu hỏi đó.Tôi không thể nhận được thông báo về thay đổi trạng thái pin?
Đây là BroadcastReceiver tôi:
public class BatteryLevelReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.v("plugg", "plug change fired");
Toast.makeText(context, " plug change fired", Toast.LENGTH_LONG).show();
}
Và đây là AndroidManifest.xml của tôi:
<receiver android:name=".ReceversAndServices.BatteryLevelReceiver">
<intent-filter android:priority="900">
<action android:name="android.intent.action.BATTERY_LOW" />
</intent-filter>
</receiver>
<receiver android:name=".ReceversAndServices.BatteryLevelReceiver">
<intent-filter android:priority="900">
<action android:name="android.intent.action.BATTERY_CHANGED" />
</intent-filter>
</receiver>
Tôi cũng đã thêm dòng này để manifest:
<uses-permission android:name="android.permission.BATTERY_STATS"/>
Nhưng vẫn không thành công!
Tôi thực sự đánh giá cao nếu ai đó có thể tư vấn cho tôi những gì tôi đang làm sai.
cảm ơn Darshan, nhưng tôi chỉ muốn chạy một dịch vụ khi pin yếu hoặc được cắm vào. Bạn có thể nói tôi nên làm thế nào? –
Nếu đó là hai sự kiện duy nhất bạn quan tâm, thì bạn không cần 'ACTION_BATTERY_CHANGED' nào cả, và bạn sẽ được đăng ký tốt cho chúng trong tệp kê khai. Chương trình phát để được cắm vào là 'ACTION_POWER_CONNECTED'. Cả hai hành động có thể dưới cùng một 'intent-filter', bạn không cần thiết lập mức độ ưu tiên, và bạn không cần quyền' BATTERY_STATS'. –