android - 使用 QT 打开位置设置 Android

标签 android c++ qt location

如何通过 Qt 从 android 打开位置设置?

我已经试过了,可以成功打开设置,但是不能打开位置设置:

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>());
        }
    }

我什至将 param2 更改为“android.settings.LOCATION_SOURCE_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>());
    }
}

关于android - 使用 QT 打开位置设置 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32823543/

相关文章:

java - Eclipse中Android开发如何避免 "Refreshing external Folders"

c++ - 如何在 C++ 中调试双重删除?

c++ - 外部存储器上的 QDataStream?

android - self 更新应用

android - 如何规范化android中的视频(mp4)文件?

java - 日期返回 null

c++ - Sean Parent 在他的 GBC - Implement Complete Types 演讲中指的是什么缺陷报告

c++ - 有时发送函数作为参数时出错

qt - 如何在 ListView 之外访问 QML 中的 QSortFilterProxyModel 元素

qt - QSlider鼠标直接跳转