Не могу получать трансляции для намерений ПАКЕТА

Я пытаюсь зарегистрировать широковещательный приемник для получения широковещательных событий для событий пакета. Ниже приведен код и мой получатель в файле манифеста. Журналирование никогда не происходит, но я ясно вижу то же самое вещание для операторов отладки "HomeLoaders" (Launcher). Что мне не хватает?

public class IntentListener extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Log.i("INTENT LISTNER:", intent.getAction());
    }
}

<receiver android:name="IntentListener" android:enabled="true" android:exported="true">
    <intent-filter>
        <data android:scheme="package"></data>
        <action android:name="android.intent.action.PACKAGE_ADDED"></action>
        <action android:name="android.intent.action.PACKAGE_ADDED"></action>
        <action android:name="android.intent.action.PACKAGE_CHANGED"></action>
    </intent-filter>
</receiver>

3 ответа

Возможно, что эти Intents не могут быть получены компонентами, зарегистрированными в манифесте, но только получателями, зарегистрированными в Java через registerReceiver(),

Это мой манифест, без

<category android:name="android.intent.category.DEFAULT" />

Мое приложение обнаруживает только установку приложения Android Market, но не удаляет. Теперь он также получает трансляции не из Android Market.

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:label="@string/app_name"
        android:name=".SomeActivity" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver android:name="com.som.pakage.PackageInstallReceiver" >
        <intent-filter >
            <action android:name="android.intent.action.PACKAGE_ADDED" />
            <action android:name="android.intent.action.PACKAGE_REMOVED" />

            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="package" />
        </intent-filter>
    </receiver>
</application>

Эти три намерения, а именно,

Intent.ACTION_PACKAGE_ADDED
Intent.ACTION_PACKAGE_REMOVED
Intent.ACTION_PACKAGE_CHANGED

когда транслируется системой, есть

Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT

добавлен флаг, чтобы только зарегистрированные получатели получали широковещательные сообщения, и компоненты широковещательных приемников не запускались. Обратитесь к Intent и PackageManagerService классу источника для получения дополнительной информации.

Другие вопросы по тегам