POWER подключенные и отключенные слушатели - PullRequest
2 голосов
/ 28 июня 2011

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

Я создал 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"));

Код подключения BroadCast:

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);
} 

}

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

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Произошла ошибка в моем экземпляре Broadcast. Я по ошибке использовал PowerConnectedBCReceiver вместо PowerDisconnectedBCReceiver

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

1 голос
/ 28 июня 2011

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

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

...