标签:
步骤如下:
通过 Intent
打开安卓的系统相册。
推荐使用 QAndroidJniObject::getStaticObjectField
获取静态字段。
QAndroidJniObject action = QAndroidJniObject::getStaticObjectField(
"android/content/Intent",
"ACTION_GET_CONTENT",
"Ljava/lang/String;");
用户在系统相册选择到一个图片后,在 C++
代码中获取到图片的 content
地址。
通过查询得出图片的本地路径。
Uri uri = data.getData();
String[] proj = { MediaStore.Images.Media.DATA };
Cursor actualimagecursor = managedQuery(uri,proj,null,null,null);
int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
actualimagecursor.moveToFirst();
String img_path = actualimagecursor.getString(actual_image_column_index);
File file = new File(img_path);
将上诉的 Java 代码转成 C++ 代码。参考 Qt and Android Gallery - MediaStore using QAndroidJniObject。
例子下载CallNativeGallery,你也可以选择 fork 这个项目。
参考资料:
Qt and Android Gallery - MediaStore using QAndroidJniObject
HOW TO OPEN ANDROID IMAGE GALLERY IN QT
Thread: Converting QAndroidJniObject to jobjectArray: most elements are NULL!
How to return an array from JNI to Java?
标签:
原文地址:http://blog.csdn.net/qyvlik/article/details/51225837