Android: получение намерения, отправленного системным ACTION_PACKAGE_RESTARTED

#android #broadcastreceiver

#Android #broadcastreceiver

Вопрос:

Я новичок в Android. Я полностью застрял в использовании ACTION_PACKAGE_RESTARTED в моем приложении

Я удалил pacakge из своего эмулятора, также добавил с помощью adb install, но ничего не получил. Запустите приложение. закройте это и снова запустите это приложение. у меня ничего не работает. В logcat нет входа в систему.

Есть ли что-нибудь, чего мне не хватает? Пожалуйста, помогите

 public class RestartReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    String action= intent.getAction();
    Log.i("D", "Inside receiver");
}
  

И вот файл манифеста

 <application android:icon="@drawable/icon" android:label="@string/app_name">
    <receiver android:name=".ReceiverTest">
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REMOVED" />
            <action android:name="android.intent.action.PACKAGE_ADDED" />
            <action android:name="android.intent.action.ACTION_PACKAGE_RESTARTED" />
        </intent-filter>
    </receiver>

</application>
  

Ответ №1:

значение, указанное в фильтре намерений, неверно .. фактическое значение равно

 <action android:name="android.intent.action.PACKAGE_RESTARTED" />
  

и эта трансляция может быть получена только для других пакетов. Перезапущенное приложение / пакет не получает эту трансляцию.

Ответ №2:

Вы должны добавить спецификацию данных в фильтр намерений:

 <data android:scheme="package" />