Como solicitar permissão de gravação em tempo de execução no Android 6.0?

Desde o Android 6.0, precisamos solicitar permissões durante o tempo de execução do aplicativo.

No meu aplicativo, estou usando permissões de armazenamento local, câmera, geolocalização e gravação de áudio.

Portanto, solicitar armazenamento local, câmera e localização geográfica está de acordo com esse trecho:https://github.com/appcelerator-developer-relations/appc-sample-ti510/blob/master/app/controllers/permissions.js

Mas não encontrei como solicitar permissão de gravação de áudio ... Na verdade, uso o módulo titutorial.audiorecorder para Android e ele falha quando tentei gravar desde o Android 6.0 porque a permissão para gravação não está ativada.

Mais informações sobre o meu ambiente:

Operating System

Name                        = Mac OS X
  Version                     = 10.11.3
  Architecture                = 64bit
  # CPUs                      = 4
  Memory                      = 17179869184

Node.js
  Node.js Version             = 0.12.7
  npm Version                 = 2.11.3

Titanium CLI
  CLI Version                 = 5.0.6

Titanium SDK
  SDK Version                 = 5.2.0.GA
  SDK Path                    = /Users/****/#/mobilesdk/osx/5.2.0.GA
  Target Platform             = android

Appcelerator Studio 4.5.0.201602170821

tiapp.xml

<manifest>
    <uses-sdk android:minSdkVersion="15"/>
    <uses-sdk android:targetSdkVersion="23"/>
    <uses-permission, android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
    <uses-permission android:name="com.mycompany.myapp.permission.MAPS_RECEIVE"/>
...
...

</manifest>

questionAnswers(1)

yourAnswerToTheQuestion