У меня проблема, когда Unity требует слишком много разрешений. Раньше я работал с Unity 2017, и моему приложению требовалось три android разрешения. Это единственные, которые мне нужны:
android.permission.RECORD_AUDIO
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
Теперь я обновился до 2019.2.21f1 и обнаружил, что было добавлено несколько дополнительных разрешений без изменения кода:
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.BROADCAST_STICKY
android.permission.BLUETOOTH
Я просмотрел весь свой код, удалив его биты, пока не обнаружил строку, которая заставила эти разрешения появиться в моем объединенном манифесте (я проверял отчет manifest-merger-release-report) - это ссылка к списку микрофонов: Microphone.devices
. Когда я делаю ссылку на это, появляются разрешения.
Мне нужно сослаться на этот массив строк, потому что мне нужно вызвать Microphone.Start
где-нибудь, чтобы получить аудиовход, но меня не волнует Bluetooth или трансляция липких. Я не хочу использовать ни одно из этих новых разрешений. Кто-нибудь знает, почему использование Microphone.devices может привести к появлению этих разрешений?
В настройках сборки мой минимальный уровень API равен 16, а целевой уровень API самый высокий.
Я не знаю не хочу понижать мою версию Unity снова. Я хочу найти способ просто потребовать разрешение RECORD_AUDIO без трех новых - единственный другой вариант - не использовать Microphone
, что сделает мою игру менее увлекательной. Бу Ху.