С Android 6.0 мы должны запрашивать разрешения во время выполнения приложения.Как запросить разрешение на запись во время работы на Android 6.0?
В моем приложении я использую местные разрешения для хранения, камеры, геолокации и аудиозаписи.
Таким образом, запрос для локального хранения, камеры и геолокации нормально с этим фрагментом: https://github.com/appcelerator-developer-relations/appc-sample-ti510/blob/master/app/controllers/permissions.js
Но я не нашел, как запросить разрешение на запись аудио ... Я использую модуль titutorial.audiorecorder для Android, и он падает, когда я пытался записать с Android 6.0, потому что разрешение на запись не включено.
Больше информации о моей среде:
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>
Я не могу видеть свою папку 5.2.0.GA sdk в/Users/[me]/Library/Application Support/Titanium/mobilesdk/osx/... Я вижу только старые папки SDK 3.5.1.GA и 5.0.2.GA? !! Есть ли другой путь для расположения 5.2.0.GA? – gsoulie
Хорошо, я нашел свой путь 5.2d.GA sdk и выполнил все приведенные выше инструкции. У меня больше нет ошибки, но функция обратного вызова не выполняется после запроса разрешения ... Я использую последнюю версию модуля ti.permissions (v0.4) – gsoulie
Я создал билет JIRA, который вы можете посмотреть, чтобы получить это исправление в SDK: https://jira.appcelerator.org/browse/TIMOB-20544 –