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.


Ответы (0 шт):