Android camera widget aplication
-
Hello
i trying to get photos from camera on android but no success.
for now i can open camera with jnl and take photo but photo not stored on phone
i use this class to open cameravoid radni::on_pushButton_3_clicked()
{
QAndroidJniObject ACTION_SET_TIMER = QAndroidJniObject::getStaticObjectField("android/provider/MediaStore","ACTION_IMAGE_CAPTURE", "Ljava/lang/String;");
QAndroidJniObject intent("android/content/Intent","(Ljava/lang/String;)V",ACTION_SET_TIMER.object());
QAndroidJniObject filename=QAndroidJniObject::fromString("coleeeeee1.jpg");
QAndroidJniObject file("java/io/File","(Ljava/lang/String;)V",filename.object<jstring>());
QAndroidJniObject uri = QAndroidJniObject::callStaticObjectMethod("android/net/Uri","fromFile", "(Ljava/io/File;)Landroid/net/Uri;", file.object());QAndroidJniObject uristr=uri.callObjectMethod("toString", "()Ljava/lang/String;"); QAndroidJniObject key=QAndroidJniObject::fromString("MediaStore.EXTRA_OUTPUT"); // intent.putExtra(MediaStore.EXTRA_OUTPUT, file); intent.callObjectMethod("putExtra","(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;",key.object(), uristr.object()); QAndroidJniObject activity = QtAndroid::androidActivity(); QAndroidJniObject packageManager = activity.callObjectMethod("getPackageManager","()Landroid/content/pm/PackageManager;"); QAndroidJniObject componentName = intent.callObjectMethod("resolveActivity","(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;",packageManager.object()); if (componentName.isValid()) { QtAndroid::startActivity(intent, 42); } else { qWarning() << "Unable to resolve activity"; }
}
my knowegle of jnl is so poor
-
@slavisac what if you try the QML camera example?
-
@Pablo-J.-Rogina how to implement with qt widget app
-
-
create a qml file with a
Camera
component, make sure to give it some object name eg:objectName: "camera"
Load the qml file via QQuickWidget
do the following inside your c++ class to get access to the QML Camera component
ui->quickWidget->setSource(QUrl(QStringLiteral("qrc:/Camera/FrontCam.qml"))); camera = ui->quickWidget->rootObject()->findChild<QObject*>("camera")->property("mediaObject").value<QCamera*>(); //camera is a QCamera pointer
Example taken from one of my projects
-
@slavisac said in Android camera widget aplication:
qt widget app
could you elaborate about this requirement? Why you cannot use QML approach?
-
i finished app just need implement camera to take photos