Accéder aux attributs d'un Broadcast Receiver
Salut a vous . j'ai une classe qui étend un BroadcastReceiver . ensuite j'ai une classe qui etend un service .
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
public class PowerConnectionReceiver extends BroadcastReceiver {
public int batplug ;
public int plugged ;
public int battery ;
public boolean present ;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
/*
* entier indiquant si l'appareil est branche a une source d'alimentation
* 0 signifie qu'il est sur batterie , d'autres constantes sont des differentes ressources d'alimentation
*/
plugged= intent.getIntExtra(BatteryManager.EXTRA_PLUGGED,0);
present= intent.getExtras().getBoolean(BatteryManager.EXTRA_PRESENT);
if (present == true) {
battery = 1;
} else {
battery = 0;
}
if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
// on AC power
batplug = 1;
} else if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
// on USB power
batplug = 2;
}
else{
batplug = 0 ;
}
Log.v("plugged", "plugged " + plugged);
Log.v("present", "present " + present);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public class Hel extends Service {
PowerConnectionReceiver power ;
@Override
public void onCreate() {
// Creation du service
Toast.makeText(this, "Service Created", Toast.LENGTH_SHORT).show();
power = new PowerConnectionReceiver() ;
registerReceiver(power, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Demarrage du service", Toast.LENGTH_SHORT).show();
this.mpresent = power.battery ;
this.mplugged = power.plugged ;
}
} |
le problème est que power.battery et power.plugged me renvoi des données incorrectes . bref ces attributs me renvoi zéro alors que je suis connecte a une source d'alimentation et j'ai un batterie dans mon téléphone