История
Наш клиент интегрировал нашу библиотеку SDK для Android. Они пытаются пройти тест на совместимость с Google (CTS).
Выпуск:
Они не прошли тестовый костюм CTS со следующим сообщением:
android.signature.cts.intent.intentTest # shouldNotFindUnexpectedIntents | Результат провал | java.lang.AssertionError: [пакет <<em> их пакет > недопустимое намерение: [android.intent.action.ACTION_BOOT_COMPLETE]].
Основной вопрос:
Моя цель - помочь им пройти этот тест, но я не уверен, в чем заключается настоящая проблема и как ее решить. Кто-нибудь может помочь?
подробности:
1) В настоящее время я вообще не могу извлекать информацию от нашего клиента об их хосте apk. Все, что я знаю, это то, что они тестируют priv-app apk для устройств Android 8.0 . (Это законно Priv-приложение и должно быть). Я не могу быть уверен в следующие несколько дней, но я считаю, что их targetSdk равен 26 (то есть Android 8.0.0)
2) Наша библиотека SDK содержит Broadcast Receiver, который определен следующим образом:
<receiver android:enabled="true" android:exported="false" android:name="<our Broadcast Receiver class path>">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
<action android:name="com.dt.ignite.startService"/>
<action android:name="<our package>.<our custom intent name 1>"/>
<action android:name="<our package>.<our custom intent name 2>"/>
<action android:name="<our package>.<our custom intent name 3>"/>
</intent-filter>
</receiver>
3) Глядя на исходный код этого конкретного теста CTS (IntentTest.java), я понимаю, что он терпит неудачу, потому что ApplicationInfo этого apk содержит Intent, который не является "Intent платформы", в частности, "BROADCAST_COMPLETE". (https://github.com/leolin310148/ShortcutBadger/issues/274)
4) Вышесказанное заставило меня задуматься о недавно введенных Google «Фоновых ограничениях» и о том, как они запрещают неявные приемники Intent с Android 8.0 и выше. Однако указывается, что BROADCAST_COMPLETE будет освобожден от этого бана. (https://developer.android.com/about/versions/oreo/background#broadcasts)