Permissions для библиотеки aar
Подскажите, если установить permissons (разрешения) в приложении, то эти permissons действуют для функций из библиотеки aar, которая используется этим приложением?
То есть у меня есть приложение. В его AndroidManifest.xml и в функции onCreate главной Activity я запрашиваю у пользователя permissons (READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, INTERNET, ACCESS_NETWORK_STATE) с помощью кода:
AndroidManifest.xml:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
onCreate:
//List of permissions
int permissionInternet = ContextCompat.checkSelfPermission(this,
Manifest.permission.INTERNET); // Allows applications to open network sockets.
int permissionAccessNetwork = ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_NETWORK_STATE); // Allows applications to access information about networks.
int permissionReadExternal = ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_EXTERNAL_STORAGE); // Allows an application to read from external storage. (Any app that declares the WRITE_EXTERNAL_STORAGE permission is implicitly granted this permission.)
int permissionWriteExternal = ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE); // Allows an application to write to external storage. (Starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by Context.getExternalFilesDir(String) and Context.getExternalCacheDir().)
//Verify status of permissions
if (permissionInternet != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.INTERNET);
}
if (permissionAccessNetwork != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.ACCESS_NETWORK_STATE);
}
if (permissionReadExternal != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.READ_EXTERNAL_STORAGE);
}
if (permissionWriteExternal != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (!listPermissionsNeeded.isEmpty())
{
ActivityCompat.requestPermissions(this,listPermissionsNeeded.toArray
(new String[listPermissionsNeeded.size()]),1);
}
При запуске приложения я вижу, что это срабатывает и пользователю предъявляется запрос на подтверждение этих permissons.
При этом при нажатии на кнопку в приложении открывается другая Activity из внешней библиотеки aar и далее вызываются native функции из этой же библиотеки aar. В одной из этих native функций идёт обращение к файлу, но возвращается ошибка, которая означает, что есть проблема с permissions.
Что это может быть? Вообще permissions относятся ко всему приложению или к конкретной Activity или что ещё? Если я установил permissons для приложения, то нужно мне делать какие-то дополнительные действия для библиотеки aar или её содержащейся в ней Activity? Причём если собрать эту библиотеку aar в виде самостоятельного приложения (с запросом permissions из её Activity), то она прекрасно работает. В чём у меня может быть проблема?
P.S. Если это важно, то приложение собрано с androidx, а библиотека aar старая и собрана без androidx.