Как упоминалось в ответах, вы также должны учитывать порядок установки приложений.
это важно, потому что:
если приложение, запрашивающее разрешение (приложение B)устанавливается перед Приложением, которое определяет разрешение (Приложение A), тогда не будет такого определенного разрешения на конкретном устройстве, поэтому ОС вообще не будет запрашивать разрешение.
позже, когда выустановите приложение A и попробуйте запустить приложение B, последний не сможет получить доступ к защищенному компоненту.
Один из обходных путей - определить одно и то же настраиваемое разрешение в приложениях, A и B, чтобы убедиться, чторазрешение существует на устройстве независимо от того, какое приложение установлено первым, поэтому, когда приложение A установлено, разрешение уже будет предоставлено приложению B.
В этом случае, однако, вы должны убедиться, что уровень защиты одинаков в обеих декларациях, поскольку это может привести к угрозе безопасности .
(обратите внимание, что отandroid 5.0 и выше, вы не можете определить одно и то же разрешение в нескольких приложениях, кроме случаев, когда эти приложения подписаны одним и тем же ключом подписи).