Изменение разрешения манифеста Android в зависимости от версии Android - PullRequest
0 голосов
/ 11 декабря 2019

Я использую BLE в библиотеке Android. В манифесте этой библиотеки я указал необходимые разрешения с помощью тега <uses-permission ... />:

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Однако, начиная с android-29 (Q), существует требование использовать разрешение ACCESS_FINE_LOCATIONвместо.

Я мог бы просто обновить до ACCESS_FINE_LOCATION и покончить с этим, но тогда мне потребуется «слишком много» для устройств под управлением Android-28 и ниже.

Есть ли способ получить мойманифест включает разные разрешения в зависимости от версии ОС?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2019

Да Можно использовать разрешение времени выполнения на основе версии для Android

0 голосов
/ 11 декабря 2019

Я думаю, что это может быть достигнуто путем настройки разновидностей и размеров документации

 productFlavors {
    demo {
      // Assigns this product flavor to the "mode" flavor dimension.
      dimension "mode"
      ...
    }

    full {
      dimension "mode"
      ...
    }

    // Configurations in the "api" product flavors override those in "mode"
    // flavors and the defaultConfig block. Gradle determines the priority
    // between flavor dimensions based on the order in which they appear next
    // to the flavorDimensions property above--the first dimension has a higher
    // priority than the second, and so on.
    minApi24 {
      dimension "api"
      minSdkVersion 24
      // To ensure the target device receives the version of the app with
      // the highest compatible API level, assign version codes in increasing
      // value with API level. To learn more about assigning version codes to
      // support app updates and uploading to Google Play, read Multiple APK Support
      versionCode 30000 + android.defaultConfig.versionCode
      versionNameSuffix "-minApi24"
      ...
    }

и манифеста слияния документации

надеюсь, что это поможет.

...