2013-07-03 3 views
0

Я застрял в создании уведомления. Просто хочу отобразить уровень заряда батареи в строке состояния (панель уведомлений). Уведомление было постоянным. Код по каталогу:Как создать постоянное уведомление, чтобы показать уровень заряда батареи

private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 

      int level= intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 

       String[] status = { 
       "Level: "+level 
       . . . 
       }; 

      NotificationManager notifi = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 

      Notification notification = new Notification(R.drawable.ic_launcher,"Level",System.currentTimeMillis()); 

      notification.flags = Notification.FLAG_ONGOING_EVENT; 

      Intent i = new Intent(context, MainActivity.class); 

      PendingIntent penInt = PendingIntent.getActivity(getApplicationContext(), 0 , i , 0); 

      notification.setLatestEventInfo(getApplicationContext(), +level+"%", penInt); 

      notifi.notify(215,notification); 


      } 
}; 

Это исправь? Есть ли что-то еще, например, в манифесте? У меня нет определенного класса для уведомления, поэтому я написал таким образом эту строку: Intent i = new Intent(context, MainActivity.class);, но я не знаю, правильно ли это.

ответ

0

Да, вам нужно добавить:

<uses-permission android:name="android.permission.BATTERY_STATS" /> 

Более подробная информация здесь:

Get battery level only once using Android SDK

+0

хорошо это работает, спасибо. Одна вещь, теперь здесь «Уведомление о уведомлении = новое уведомление (R.drawable.ic_launcher, + уровень +«% », System.currentTimeMillis()). Я хочу отображать только уровень, а не значок. Фактически это покажет мне только батарею значка в строке состояния. Есть ли способ удалить его? –

Смежные вопросы