Трансляция не обновляет значение замены батареи

Я создал уведомление в своем приложении, чтобы показать уровень заряда батареи в процентах. Мой файл манифеста

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.create.bg"
android:versionCode="1"
android:versionName="1.0" >

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:label="@string/app_name"
        android:name=".CreateBgActivity" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver android:name=".BatteryReceive" >
        <intent-filter>

            <action android:name="android.intent.action.BATTERY_CHANGED"></action>
        </intent-filter>
    </receiver>
</application>

I created a separate class that extends BroadcastReceiver to receive the battery level and notify in the status bar. My code is:

public class BatteryReceive extends BroadcastReceiver {
private String bat = "android.intent.action.BATTERY_CHANGED";

@Override
public void onReceive(Context context, Intent intent) {
    //Log.d("Battery Level", ""+intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1));
    if(intent.getAction().equals(bat)) {
    Toast.makeText(context, "Battery Level"+intent.getIntExtra("level", 0), Toast.LENGTH_SHORT).show();
    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    final Notification notifyDetails = new Notification(R.drawable.ic_launcher,""+intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1),System.currentTimeMillis());
    //notifyDetails.flags = Notification.FLAG_AUTO_CANCEL;


    notifyDetails.setLatestEventInfo(context, "Batter Level", ""+intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1), null);
    mNotificationManager.notify(1, notifyDetails);
    }
}

 }

Я не мог получить уведомление или вывод журнала для уровня заряда батареи :( Что-то не так с моим кодом. Кто-то помог мне в этом.


person Santhosh_pulliman    schedule 10.02.2012    source источник
comment
Вот полный источник виджета батареи code.google.com/p/batterywidget/source/ оформить заказ   -  person Rishi    schedule 10.02.2012
comment
@Rishi Я уже видел это. То же самое я реализовал в своем коде, но это не работает.   -  person Santhosh_pulliman    schedule 10.02.2012
comment
см. приведенный ниже классhttp://code.google.com/p/batterywidget/source/browse/trunk/a_batterywidget/src/com/geekyouup/android/widgets/battery/BatteryWidget.java?r=5 В Remoteview Build Update You получить уровень заряда батареи   -  person Rishi    schedule 11.02.2012
comment
@Rishi Пожалуйста, исправьте, если что-то не так в моем коде....   -  person Santhosh_pulliman    schedule 11.02.2012
comment
Проверьте этот ответ: stackoverflow.com/questions/11277302/   -  person benchuk    schedule 29.04.2015
comment
## Проверьте этот ответ ## stackoverflow.com/questions/11277302/   -  person benchuk    schedule 29.04.2015
comment
Проверьте этот ответ: stackoverflow.com/questions/11277302/   -  person benchuk    schedule 29.04.2015


Ответы (2)


@Override public void onReceive (контекст контекста, намерение) {

//Log.d("Battery Level", ""+intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1));

if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
   // This is called when Your battery is changed 

}

}

person Rishi    schedule 11.02.2012
comment
Я пробовал и с этим. Когда я запускаю его в первый раз, он показывает уровень заряда батареи. Позже не дает. - person Santhosh_pulliman; 11.02.2012
comment
проверьте этот ответ: stackoverflow.com/questions/11277302/ - person benchuk; 29.04.2015

Изменять:

if(intent.getAction().equals(bat))

To:

if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED))
person Marvin Pinto    schedule 10.02.2012
comment
Я также использовал ваш ответ. Но я не проверил уровень заряда батареи. - person Santhosh_pulliman; 11.02.2012