Как объявить intent-фильтр для класса Receiver, который присутствует во внешней библиотеке. - PullRequest
1 голос
/ 28 июля 2011

Я создал библиотеку, один из классов которой

public class SmsReceiver extends BroadcastReceiver{...}

Теперь, поскольку этот класс расширяет BroadcaseReceiver, мне нужно объявить фильтр намерений следующим образом:

<receiver android:name="SmsReceiver">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>

Но теперь, поскольку класс SmsReceiver является частью внешней библиотеки, поэтому, если я объявлю фильтр намерений, как указано выше, в приложении (пакет приложения com.abc.test), где я использую класс SmsReceiver, я получить сообщение об ошибке в AndroidManifest.xml, в котором говорится

Class com.abc.test.SmsReceiver doesn't exist

Что мне нужно сделать, чтобы это заработало? Библиотека была включена в путь сборки проекта, и я могу вызвать класс SmsReceiver из приложения (com.abc.test). Единственная проблема заключается в том, что BroadcastReceiver (наш класс SmsReciever) не будет работать.

1 Ответ

5 голосов
/ 28 июля 2011

Используйте android:name="the.fully.qualified.class.name.SmsReceiver", где the.fully.qualified.class.name.SmsReceiver - полное имя класса SmsReceiver.

...