«Клиент Google Talk» не использует Smack, AFAIK.

аюсь разработать фоновый процесс, который перехватывает сообщение XMPP и выполняет действие, я использую asmack в качестве основной библиотеки XMPP. Я предполагаю, что мне нужен широковещательный приемник, который отвечает определенным намерениям. Вопрос в том, как поднять намерение? Это должно быть возможно, так как эта функция присутствует в клиенте Google Talk. Спасибо заранее.

Ответы на вопрос(2)

вы можете подумать о постоянной фоновой службе, работающей с клиентом asmack XMPP. Метод слушателя (то есть processPacket) вашего XMPP-клиента может вызвать намерение. Затем вы можете перехватить это намерение из другого приложения или из этого приложения с помощью BroadcastReceiver.

final Context context = getContext(); // or getApplicationContext(). context must be final.
PacketFilter packetFilter = new MessageTypeFilter(Message.Type.chat);
connection.addPacketListener(new PacketListener() {
    @Override
    public void processPacket(Packet packet) {
        Message message = (Message) packet;
        if (message.getBody() != null) {
            String from = StringUtils.parseBareAddress(message.getFrom());
            Intent intent = new Intent();
            intent.setAction("your.package.XMPP_PACKET_RECEIVED");
            intent.putExtra("from", from);
            intent.putExtra("body", message.getBody());
            context.sendBroadcast(i);
        }
    }
}, packetFilter);

Вы также можете попытаться реализовать другое направление связи, создав BroadcastReceiver (или IntentService), который получает намерение и отправляет его через XMPP. BackgroundReceiver должен был бы создать новое соединение для каждого сообщения, которое было бы медленным, но энергосберегающим (нет необходимости поддерживать сеанс XMPP живым).

что мне нужен широковещательный приемник, который отвечает определенным намерениям.

Возможно нет. Похоже, что aSmack в основном Smack, который не имеет ничего общего с Android, и поэтому не имеет понятия Intents.

Это должно быть возможно, так как эта функция присутствует в клиенте Google Talk.

«Клиент Google Talk» не использует Smack, AFAIK.

Ваш ответ на вопрос