2010-10-20 4 views
0

У меня есть служба Android, которая отправляет трансляции. Я пытаюсь получить эти намерения в другом приложении, которое является сервисом Android. Я писал об этом в своем манифесте:Трансляция намерений, не полученных службой

<!-- Service --> 
<service android:enabled="true" android:name="...MyService"></service> 

<!-- Receiver --> 
<receiver android:name="...MyReceiver"> 
    <intent-filter> 
     <action android:name="..."></action> 
     <action android:name="..."></action> 
    </intent-filter> 
</receiver> 

и это в моем классе MyReceiver:

public class ScannerBroadcastReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     // Process action. 
     Log.d(Globals.LOG_TAG, "Intent received."); 
     ... 

К сожалению, я никогда не получаю OnReceive метод вызывается. Любая идея почему? Я запускаю эту услугу из другого тестового приложения, поэтому это устанавливается как Android-библиотека. Служба правильно запущена, но этот приемник ничего не получает. Любая идея, что я делаю неправильно? Спасибо!

+0

Возможно, вы неправильно зарегистрировали IntentReceiver или передали плохо настроенное намерение. Вы также должны опубликовать эти части своего кода. –

+0

Я не зарегистрировал приемник. Это не должно быть необходимо, когда оно находится в манифесте ... Цель транслируется правильно, поскольку она получена другими приложениями, которые я написал ... –

ответ

0

Я решил проблему, и я полагаю, что это связано с тем, что этот проект был установлен в качестве библиотеки «[пакет] .ScannerBroadcastReceiver.». Если я не установлю его таким образом, то намерение будет правильно получено. Я нигде не читал об этом.

0

В манифесте должны быть: андроид: имя =

+0

Извините, мой плохой. Кажется, я забыл переименовать класс в MyService. В коде это правильно. –

Смежные вопросы