Как создать постоянное уведомление с уровнем заряда батареи?
Можно ли создать постоянное уведомление об уровне заряда батареи, начиная с этого кода?:
public void onCreate(Bundle savedInstanceState) {
...
this.registerReceiver(this.myBatteryReceiver , new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
...
}
private BroadcastReceiver myBatteryReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
//here you can use level as you wish.
}
};
И это пример уведомления.
private void CheckNoti(){
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
service.this);
notificationBuilder.setContentTitle("Title");
notificationBuilder.setContentText("Context");
notificationBuilder.setTicker("TickerText");
notificationBuilder.setWhen(System.currentTimeMillis());
notificationBuilder.setSmallIcon(R.drawable.ic_stat_icon);
Intent notificationIntent = new Intent(this, service.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
notificationBuilder.setContentIntent(contentIntent);
notificationBuilder.setDefaults(Notification.DEFAULT_SOUND
| Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);
mNotificationManager.notify(1,
notificationBuilder.build());
} }
Я должен создать постоянное уведомление с уровнем заряда батареи, если это возможно. Как мне это сделать?
1 ответ
Используйте текущие флаги: http://developer.android.com/reference/android/app/Notification.Builder.html
Пользователь не сможет отменить уведомление, поэтому, пожалуйста, не забудьте удалить его, когда оно больше не будет полезным.
Чтобы включить его, вам нужно добавить PreferenceActivity или PreferenceFragment в ваше приложение. Затем добавьте флажок Prereference: http://developer.android.com/guide/topics/ui/settings.html
В вашем коде теперь вы можете переключать эту конкретную настройку:
boolean permanent = PreferenceManager.getDefaultSharedPreferences(context).getBoolean("permanent", false);
if(permanent) {
notificationBuilder.setOngoing(true);
}