Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. // Take Picture
  2. void Camera::takePciture()
  3. {
  4. const QString CameraAndroid::IMAGE_CAPTURE_ACTION = QString("android.media.action.IMAGE_CAPTURE");
  5.  
  6.  
  7. QAndroidJniObject MediaStore__EXTRA_OUTPUT = QAndroidJniObject::getStaticObjectField(
  8. "android/provider/MediaStore", "EXTRA_OUTPUT", "Ljava/lang/String;");
  9.  
  10. QAndroidJniObject action = QAndroidJniObject::fromString(IMAGE_CAPTURE_ACTION);
  11. m_TakePictureIntent = QAndroidJniObject("android/content/Intent","(Ljava/lang/String;)V",
  12. action.object<jstring>());
  13.  
  14. QAndroidJniObject intent = QAndroidJniObject::callStaticObjectMethod("com/camera/sample/Camera",
  15. "getPictureIntent",
  16. "(Landroid/content/Intent;)Landroid/content/Intent;",
  17. m_TakePictureIntent.object<jobject>());
  18.  
  19. if (intent.isValid())
  20. {
  21. QtAndroid::startActivity(intent.object<jobject>(), CAPTURE_IMAGE_PROVIDER, this);
  22. }
  23. }
  24.  
  25. // Handle responses
  26.  
  27. void Camera::handleActivityResult(int receiverRequestCode, int resultCode, const QAndroidJniObject &data)
  28. {
  29. int RESULT_OK = QAndroidJniObject::getStaticField<int>("android/app/Activity", "RESULT_OK");
  30.  
  31. if (resultCode == RESULT_OK)
  32. {
  33. qDebug() << "Receiver code" << receiverRequestCode;
  34.  
  35. if (receiverRequestCode == CAPTURE_IMAGE_PROVIDER)
  36. {
  37. if (m_Mode == CaptureModePrivate::CaptureStillImage)
  38. {
  39. QAndroidJniObject metaData = QAndroidJniObject::fromString("imagePathUrl");
  40. QAndroidJniObject absPath = m_TakePictureIntent.callObjectMethod("getStringExtra","(Ljava/lang/String;)Ljava/lang/String;", metaData.object<jstring>());
  41. qDebug() << "absPath" << absPath.toString();
  42.  
  43. if (absPath.isValid())
  44. {
  45. QUrl fileUrl = QUrl("file://"+absPath.toString());
  46. emit success(fileUrl);
  47. }
  48. else
  49. {
  50. emit error(ErrorPrivate::Unavailable);
  51. }
  52. }
  53. }
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement