1.了解 使用JNI扩展Qt应用
参考《Qt on Android核心编程》15章
源码https://download.csdn.net/download/dinosaurx/10149765
项目工程extendsQtWithJava
2.添加 调用系统文件管理功能
3.从Uri获取文件路径
参考:Android将"content://"类型的uri转为文件路径
4 解决错误. java.lang.SecurityException: Permission Denial:
参考https://blog.csdn.net/OREO_GO/article/details/52295099
4.1 源码中添加代码
int hasWriteContactsPermisson = ContextCompat.checkSelfPermission(context,
android.Manifest.permission.READ_EXTERNAL_STORAGE);
if(hasWriteContactsPermisson !=
PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(m_instance,new String[]
{Manifest.permission.WRITE_CONTACTS},
REQUEST_CODE_ASK_PERMISSIONS);
return "";
}
4.2需要在AndroidManifest.xml 文件添加权限
4.3有时需要添加 android-support-v4.jar 包
注:Qt Android 添加第三方jar 只需将jar包放在“/android/libs/”目录下
5.选择多个文件
6.修改 AndroidManifest.xml文件
修改Activity节点属性android:name,避免ExtendsQtWithJava. m_instance空指针
<activity android:configChanges="fontScale|keyboard|keyboardHidden|layoutDirection|locale|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:label="加解密" android:launchMode="singleTop" android:name="an.qt.extendsQtWithJava.ExtendsQtWithJava " android:screenOrientation="unspecified">
7.源码
有钱的捧个钱场
https://download.csdn.net/download/u013411873/11609606
没钱的捧个人场
https://github.com/dragonfly1208/QtAndroidProjects/tree/AndroidFileManager
8.后记
使用Android系统文件管理,是因为Qt Android上的FileDialog 不好用,且和Qt::AA_EnableHighDpiScaling不兼容。