POWER подключенных и отключенных слушателей

Я слушаю как подключение, так и отключение питания для моей галактики.

Я создал 2 BroadCastReceivers, один для подключения и один для отключения.

При попытке реализовать получаю только подключенные данные, даже при отключении кабеля питания.

Намерение отправлено, но похоже, что оно неверное.

Вот код активности:

        //      Handle Power On
    PowerConnectedBCReceiver myPowerConnectedBCReceiver = new PowerConnectedBCReceiver();
    IntentFilter intentPowerOnFilter = new IntentFilter();
    intentPowerOnFilter.addAction("android.intent.action.ACTION_POWER_CONNECTED");
    registerReceiver(myPowerConnectedBCReceiver, intentPowerOnFilter);

    BroadcastReceiver PowerConnectedReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            showToast("connected");
        }
    };



    //      Handle Power Off
    PowerConnectedBCReceiver myPowerDisonnectedBCReceiver = new PowerConnectedBCReceiver();
    IntentFilter intentPowerDisconnectedOnFilter = new IntentFilter();
    intentPowerDisconnectedOnFilter.addAction("android.intent.action.ACTION_POWER_DISCONNECTED");
    registerReceiver(myPowerDisonnectedBCReceiver, intentPowerDisconnectedOnFilter);

    BroadcastReceiver PowerDisconnectedReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            showToast("disconnected");
        }
    };

Регистрация обоих БК для выполнения работы

        registerReceiver(PowerDisconnectedReceiver, new IntentFilter("com.neglected.POWER_DISCONNECTED"));
    registerReceiver(PowerConnectedReceiver, new IntentFilter("com.neglected.POWER_CONNECTED"));

Код подключения к широковещательному вещанию:

public class PowerConnectedBCReceiver extends BroadcastReceiver
{ 
@Override
public void onReceive(Context context, Intent intent) 
{
    Toast.makeText(context,  "Phone was connected to power" , Toast.LENGTH_LONG).show();
    Intent tIntent = new Intent("com.neglected.POWER_CONNECTED");
    context.sendBroadcast(tIntent);
} 

}

Код отключения трансляции:

public class PowerDisconnectedBCReceiver extends BroadcastReceiver
{ 
@Override
public void onReceive(Context context, Intent intent) 
{

    Toast.makeText(context,  "Phone was disconnected from power" , Toast.LENGTH_LONG).show();
    Intent tIntent = new Intent("com.neglected.POWER_DISCONNECTED");
    context.sendBroadcast(tIntent);
} 

}

код неверный? Могу ли я прослушать оба действия? отдельно? Я не вижу дополнительных отправлений с действием CONNNECTED, не так ли?


person Saariko    schedule 27.06.2011    source источник


Ответы (2)


Не уверен, что ваши последние два класса (*BCReeivers) должны делать. Ваш первый блок кода выглядит нормально. Если это имеет значение, он будет ограничен жизненным циклом прилагаемой Activity.

Для Galaxy S вы не сможете полагаться на эти намерения. В частности, я обнаружил, что Verizon Fascinate (их версия Galaxy S) сильно глючит. См. здесь: http://devblog.bu.mp/how-to-ddos-yourself< /а>

person michaelg    schedule 27.06.2011
comment
Спасибо, пока все, что я хочу, чтобы они сделали, это Toast для отладки. Спасибо. Идея состоит в том, что у меня есть флажок в моей Activity , что при изменении состояния он должен регистрировать/отменять регистрацию широковещательных слушателей в моей службе. * Прежде чем я собираюсь использовать это в своем сервисе, я хочу увидеть, как это работает в Activity. - person Saariko; 28.06.2011
comment
Спасибо за ссылку михаил. Я прочитал это, и мое плохое поведение заключается в том, что я получаю событие CONNECTED как при подключении, так и при отключении телефона. Я буду продолжать искать. еще раз спасибо - person Saariko; 28.06.2011

В моем экземпляре широковещательной рассылки произошла ошибка. Я по ошибке использовал PowerConnectedBCReceiver вместо PowerDisconnectedBCReceiver.

проблема решена.

person Saariko    schedule 28.06.2011