Android 使用QT打开位置设置
如何通过Qt从android打开位置设置 我已尝试此操作,可以成功打开设置,但无法打开位置设置:Android 使用QT打开位置设置,android,c++,qt,location,Android,C++,Qt,Location,如何通过Qt从android打开位置设置 我已尝试此操作,可以成功打开设置,但无法打开位置设置: QAndroidJniObject intent("android/content/Intent","()V"); if ( intent.isValid() ) { QAndroidJniObject param1 = QAndroidJniObject::fromString("com.android.settings"); QAndroidJni
QAndroidJniObject intent("android/content/Intent","()V");
if ( intent.isValid() )
{
QAndroidJniObject param1 = QAndroidJniObject::fromString("com.android.settings");
QAndroidJniObject param2 = QAndroidJniObject::fromString("com.android.settings.Settings");
if ( param1.isValid() && param2.isValid() )
{
intent.callObjectMethod("setClassName","(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;",param1.object<jobject>(),param2.object<jobject>());
activity.callObjectMethod("startActivity","(Landroid/content/Intent;)V",intent.object<jobject>());
}
}
qandroidjniobjectintent(“android/content/intent”,“V”);
if(intent.isValid())
{
QAndroidJniObject param1=QAndroidJniObject::fromString(“com.android.settings”);
QAndroidJniObject param2=QAndroidJniObject::fromString(“com.android.settings.settings”);
if(param1.isValid()&¶m2.isValid())
{
intent.callObjectMethod(“setClassName”,“(Ljava/lang/String;Ljava/lang/String;)Landroid/content/intent;”,param1.object(),param2.object());
activity.callObjectMethod(“startActivity”,“(Landroid/content/Intent;)V”,Intent.object();
}
}
我甚至将param2改为“android.settings.LOCATION\u SOURCE\u settings”,正如它写在android开发者页面上一样,但没有成功
有人知道怎么做吗?
谢谢 我找到了解决办法强>
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
if ( activity.isValid() )
{
qDebug() << "activity.isValid()";
QAndroidJniObject param = QAndroidJniObject::fromString("android.settings.LOCATION_SOURCE_SETTINGS");
if (param.isValid() )
{
QAndroidJniObject intent("android/content/Intent","(Ljava/lang/String;)V", param.object<jstring>());
activity.callObjectMethod("startActivity","(Landroid/content/Intent;)V",intent.object<jobject>());
}
}
QAndroidJniObject activity=QAndroidJniObject::callStaticObjectMethod(“org/qtproject/qt5/android/qtnotive”,“activity”,“Landroid/app/activity;”);
if(activity.isValid())
{
qDebug()我找到了解决方案!
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
if ( activity.isValid() )
{
qDebug() << "activity.isValid()";
QAndroidJniObject param = QAndroidJniObject::fromString("android.settings.LOCATION_SOURCE_SETTINGS");
if (param.isValid() )
{
QAndroidJniObject intent("android/content/Intent","(Ljava/lang/String;)V", param.object<jstring>());
activity.callObjectMethod("startActivity","(Landroid/content/Intent;)V",intent.object<jobject>());
}
}
QAndroidJniObject activity=QAndroidJniObject::callStaticObjectMethod(“org/qtproject/qt5/android/qtnotive”,“activity”,“Landroid/app/activity;”);
if(activity.isValid())
{
qDebug()QAndroidJniObject activity=QAndroidJniObject::callStaticObjectMethod(“org/qtproject/qt5/android/QtNative”,“activity”,“()Landroid/app/activity;”;
if(activity.isValid())
{
QAndroidJniObject param=QAndroidJniObject::fromString(“android.settings.LOCATION\u SOURCE\u settings”);
if(param.isValid())
{
QAndroidJniObject intent(“android/content/intent”,“(Ljava/lang/String;)V”,param.object();
activity.callMethod(“startActivity”,“(Landroid/content/Intent;)V”,Intent.object();
}
}
QAndroidJniObject activity=QAndroidJniObject::callStaticObjectMethod(“org/qtproject/qt5/android/QtNative”,“activity”,“()Landroid/app/activity;”;
if(activity.isValid())
{
QAndroidJniObject param=QAndroidJniObject::fromString(“android.settings.LOCATION\u SOURCE\u settings”);
if(param.isValid())
{
QAndroidJniObject intent(“android/content/intent”,“(Ljava/lang/String;)V”,param.object();
activity.callMethod(“startActivity”,“(Landroid/content/Intent;)V”,Intent.object();
}
}