qt 안드로이드 개발 관련 질문드립니다.
글쓴이: lalupo20 / 작성시간: 화, 2023/01/03 - 10:21오후
일단 연습용으로 mp3플레이어 앱을 만드려고 합니다.
우선 mp3 파일을 불러와야 해서 메모리 읽기쓰기 권한이 필요한데
qt상에서는 권한을 어떻게 얻는지 모르겠습니다.
일단 웹상에서
auto result = QtAndroid::checkPermission(QString("android.permission.CAMERA")); if(result == QtAndroid::PermissionResult::Denied){ QtAndroid::PermissionResultMap resultHash = QtAndroid::requestPermissionsSync(QStringList({"android.permission.CAMERA"})); if(resultHash["android.permission.CAMERA"] == QtAndroid::PermissionResult::Denied) return 0; }
위와 같은 소스코드를 얻었는데요.
QtAndroid.h 라는 헤더파일을 추가해야 되는데
제가 설치한 환경에서는 해당 헤더파일이 없는것 같습니다..
인터넷 검색해도 별다른 정보 없는듯 하구요.
혹시 Qt 개발 경험 있는 분 계신가요?
Forums:
일단 이 헤더파일 문제는 해결했습니다.
QtAndroid.h 파일이 qandroidextras_p.h로 대체되었다 합니다. #include <6.4.2(qt 버전)/QtCore/private/qandroidextras_p.h> 이렇게 해주어야 되네요. 근데 이 헤더파일 인클루드하면 qandroidextras_p.h파일에 인클루드된 헤더파일을 못찾는다고 나옵니다. 이부분은 qandroidextras_p.h파일의 인클루드된 경로를 수정해주어야 할 것 같습니다
윗댓글에 추가로 작성합니다.
일단 헤더파일의 경로가 "QtCore/6.4.2(qt 버전)/QtCore/private/qandroidextras_p.h 이렇게 되는데 private 폴더를 첫번째 QtCore폴더로 복사했습니다. 이렇게 해서 "QtCore/private/qandroidextras_p.h"를 인클루드해주면 헤더파일을 못찾는다는 메시지 안나오고 빌드 잘 됩니다.
그리고 파일 권한 얻는 함수는
위와 같은 함수를 웹상에서 얻었습니다.
그리고 Mp3파일을 찾는 함수는
이와 같은 함수를 또한 구했구요.
위 세가지 사항을 이용해서 코드를 구현하면 파일 찾기 기능이 정상 작동합니다.
그리고 파일찾기 코드에서 path1부분은 안드로이드 루트경로를 넣어주어야 하는데
QDir::rootPath() 함수는 '/'로서 정상적으로 작동하지 않습니다.
위에 root경로를 두개 넣어 놨는데, 폰마다 루트경로가 다르다고 해서 위와 같이 해두었습니다.
이 글이 다른분들께 조금이나마 도움이 되었으면 합니다.
ㅇ_ㅇ''
PermissionResultMap
qandroidextras_p 구글 검색
코틀린 코루틴으로 onRequestPermis.. : 네이버블로그
http://blog.naver.com/eominsuk55/222614936904
makersweb - 안드로이드용 Qt 6.2
http://makersweb.net/qt/22901
Re: [Interest] Qt6: Android: checkPermission is not available yet?
http://www.mail-archive.com/interest@qt-project.org/msg36331.html
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기