Я пытаюсь записать файл на SD-карте устройства Android из AudioSystem.cpp. Это сервис в Android Framework. Я изменяю исходный код.Записать файл на sdcard из AudioSystem (код на C++) в Android 5.0.1_r1
Я использую следующий код:
int fd = open("/sdcard/file.txt", O_RDWR | O_APPEND | O_CREAT, 0666);
if(fd > -1) {
__android_log_print(ANDROID_LOG_DEBUG, "gxp18", "Writing to SDCARD");
write(fd, "1", strlen("1"));
write(fd, "\n", 1);
close(fd);
}
else __android_log_print(ANDROID_LOG_DEBUG, "gxp18", "ERROR while writing to SDCARD fd = %d", fd);
Запустив код, который я всегда получаю Fd = -1
исходный код имеет следующий вид:
status_t AudioSystem::startInput(audio_io_handle_t input,
audio_session_t session)
{
const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
if (aps == 0) return PERMISSION_DENIED;
return aps->startInput(input, session);
}
Модифицированный один это:
status_t AudioSystem::startInput(audio_io_handle_t input,
audio_session_t session)
{
const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
/* start */
int fd = open("/sdcard/file.txt", O_RDWR | O_APPEND | O_CREAT, 0666);
if(fd > -1) {
__android_log_print(ANDROID_LOG_DEBUG, "gxp18", "Writing to SDCARD");
write(fd, "1", strlen("1"));
write(fd, "\n", 1);
close(fd);
}
else __android_log_print(ANDROID_LOG_DEBUG, "gxp18", "ERROR while writing to SDCARD fd = %d", fd);
/* end */
if (aps == 0) return PERMISSION_DENIED;
return aps->startInput(input, session);
}
Разрешение WRITE_EXTERNAL_STORAGE, запрошенное в файле манифеста? – greenapps
Какой файл манифеста? Это не приложение для Android является частью Android Framework (AOSP). Я изменяю исходный код. – Giuseppe
Ну, пожалуйста, покажите немодифицированный исходный код. – greenapps