Я сразу признаю, что этот ответ не отвечает на первоначальный вопрос о возможности доступа к манифесту. Однако, если действительно требуется прочитать один из ряда «стандартных» атрибутов манифеста, следующее решение намного проще, чем те, которые были опубликованы выше. Так что надеюсь модератор разрешит. Обратите внимание, что это решение находится в Kotlin, а не в Java, но я ожидаю, что перенос на Java будет тривиальным. (Хотя я признаю, что не знаю Java-эквивалент «.`package`».
В моем случае я хотел прочитать атрибут «Версия реализации», поэтому я начал с приведенных выше решений, чтобы получить поток, а затем прочитал его, чтобы получить значение. Хотя это решение работало, коллега, просматривавший мой код, показал мне более простой способ сделать то, что я хотел. Обратите внимание, что это решение находится в Kotlin, а не в Java.
val myPackage = MyApplication::class.java.`package`
val implementationVersion = myPackage.implementationVersion
Еще раз обратите внимание, что это не отвечает на исходный вопрос, в частности, «Экспорт-пакет», похоже, не является одним из поддерживаемых атрибутов. Тем не менее, есть myPackage.name, который возвращает значение. Возможно, кто-то, кто понимает это больше, чем я, может прокомментировать, возвращает ли это значение, которое запрашивает исходный постер.
person
Steven W. Klassen
schedule
23.03.2018