void CallNativeGallery::openGallery() { #ifdef Q_OS_ANDROID // android.content.Intent.ACTION_GET_CONTENT QAndroidJniObject action = QAndroidJniObject::getStaticObjectField( "android/content/Intent", "ACTION_GET_CONTENT", "Ljava/lang/String;"); QAndroidJniObject intent("android/content/Intent", "(Ljava/lang/String;)V", action.object<jstring>()); Q_SAFE_CALL_JAVA // Intent setType(String type) QAndroidJniObject type = QAndroidJniObject::fromString("image/*"); intent.callObjectMethod("setType", "(Ljava/lang/String;)Landroid/content/Intent;", type.object<jstring>()); Q_SAFE_CALL_JAVA galleryResultReceiver->notify = this; QtAndroid::startActivity(intent, GalleryResultReceiver::ReceiverRequestCode, galleryResultReceiver); #endif }
void NativeMap::open() { qDebug() << "NativeMap::open()..."; qDebug() << "location = " << location; qDebug() << "longitude = " << longitude; qDebug() << "latitude = " << latitude; qDebug() << "zoom = " << zoom; #ifdef Q_OS_ANDROID qDebug() << "NativeMap::open()...ANDROID"; QAndroidJniObject activity = QtAndroid::androidActivity(); if ( activity.isValid() ) { /*QAndroidJniEnvironment env; jclass cls = env->FindClass( "wpp.android.AMapActivity" ); qDebug() << "cls:" << cls; QAndroidJniObject anIntent("android/content/Intent","(Landroid/content/Context;Ljava/lang/Class;)V", activity.object<jobject>(), cls); qDebug() << "anIntent.isvalid=" << anIntent.isValid(); */ // Equivalent to Jave code: 'Intent intent = new Intent();' QAndroidJniObject intent("android/content/Intent","()V"); if ( intent.isValid() ) { QAndroidJniObject packageName = activity.callObjectMethod("getPackageName","()Ljava/lang/String;"); qDebug() << "packageName.isValid=" << packageName.isValid(); qDebug() << "packageName=" << packageName.toString(); QAndroidJniObject param2 = QAndroidJniObject::fromString("wpp.android.AMapActivity"); if ( packageName.isValid() && param2.isValid() ) { qDebug() << "111..."; // Equivalent to Jave code: 'intent.setClassName("com.kuulabu.android.app", "com.kuulabu.android.app.BasicMapActivity");' intent.callObjectMethod("setClassName", "(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;", packageName.object<jobject>(), param2.object<jobject>()); QAndroidJniObject locationKey = QAndroidJniObject::fromString("MAP_LOCATION"); QAndroidJniObject locationValue = QAndroidJniObject::fromString(this->location); intent.callObjectMethod( "putExtra","(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;", locationKey.object<jstring>(), locationValue.object<jstring>()); QAndroidJniObject longitudeKey = QAndroidJniObject::fromString("MAP_LONGITUDE"); QAndroidJniObject longitudeValue = QAndroidJniObject::fromString(QString::number(this->longitude)); intent.callObjectMethod( "putExtra","(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;", longitudeKey.object<jstring>(), longitudeValue.object<jstring>()); QAndroidJniObject latitudeKey = QAndroidJniObject::fromString("MAP_LATITUDE"); QAndroidJniObject latitudeValue = QAndroidJniObject::fromString(QString::number(this->latitude)); intent.callObjectMethod( "putExtra","(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;", latitudeKey.object<jstring>(), latitudeValue.object<jstring>()); QAndroidJniObject zoomKey = QAndroidJniObject::fromString("MAP_ZOOM"); QAndroidJniObject zoomValue = QAndroidJniObject::fromString(QString::number(this->zoom)); intent.callObjectMethod( "putExtra","(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;", zoomKey.object<jstring>(), zoomValue.object<jstring>()); qDebug() << "222..."; // Equivalent to Jave code: 'startActivity(intent);' //activity.callMethod<void>("startActivity","(Landroid/content/Intent;)V",intent.object<jobject>()); //QtAndroid::startActivity(intent, 0, 0); int LOCATE_EVENT_VENUE = 1; QtAndroid::startActivity(intent, LOCATE_EVENT_VENUE, this); qDebug() << "333..."; } } } #endif }