Показывает ли это диалоговое окно запроса разрешения во время выполнения в более низких версиях?
Нет. На более низких версиях такого диалога нет. Он просто вызовет ваш метод onRequestPermissionsResult()
, чтобы сообщить вам, что у вас есть разрешения (поскольку, по определению, вы уже это делаете).
В чем разница между
Activity#requestPermissions()
предназначен для приложений с minSdkVersion
от 23 или выше или для приложений, разработчикам которых нравится вызывать if (Build.VERSION.SDK_INT >= 23)
, чтобы избежать этого вызова на старых устройствах.
ActivityCompat.requestPermissions()
для любого приложения, так как оно «работает правильно» на всех поддерживаемых уровнях API (обратно к API Level 14 IIRC).
Какой я должен использовать?
Если ваш minSdkVersion
равен 23 или выше, не стесняйтесь использовать Activity#requestPermissions()
. В противном случае, я рекомендую ActivityCompat.requestPermissions()
.