Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Take Picture
- void Camera::takePciture()
- {
- const QString CameraAndroid::IMAGE_CAPTURE_ACTION = QString("android.media.action.IMAGE_CAPTURE");
- QAndroidJniObject MediaStore__EXTRA_OUTPUT = QAndroidJniObject::getStaticObjectField(
- "android/provider/MediaStore", "EXTRA_OUTPUT", "Ljava/lang/String;");
- QAndroidJniObject action = QAndroidJniObject::fromString(IMAGE_CAPTURE_ACTION);
- m_TakePictureIntent = QAndroidJniObject("android/content/Intent","(Ljava/lang/String;)V",
- action.object<jstring>());
- QAndroidJniObject intent = QAndroidJniObject::callStaticObjectMethod("com/camera/sample/Camera",
- "getPictureIntent",
- "(Landroid/content/Intent;)Landroid/content/Intent;",
- m_TakePictureIntent.object<jobject>());
- if (intent.isValid())
- {
- QtAndroid::startActivity(intent.object<jobject>(), CAPTURE_IMAGE_PROVIDER, this);
- }
- }
- // Handle responses
- void Camera::handleActivityResult(int receiverRequestCode, int resultCode, const QAndroidJniObject &data)
- {
- int RESULT_OK = QAndroidJniObject::getStaticField<int>("android/app/Activity", "RESULT_OK");
- if (resultCode == RESULT_OK)
- {
- qDebug() << "Receiver code" << receiverRequestCode;
- if (receiverRequestCode == CAPTURE_IMAGE_PROVIDER)
- {
- if (m_Mode == CaptureModePrivate::CaptureStillImage)
- {
- QAndroidJniObject metaData = QAndroidJniObject::fromString("imagePathUrl");
- QAndroidJniObject absPath = m_TakePictureIntent.callObjectMethod("getStringExtra","(Ljava/lang/String;)Ljava/lang/String;", metaData.object<jstring>());
- qDebug() << "absPath" << absPath.toString();
- if (absPath.isValid())
- {
- QUrl fileUrl = QUrl("file://"+absPath.toString());
- emit success(fileUrl);
- }
- else
- {
- emit error(ErrorPrivate::Unavailable);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement