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/

相关文章:

android - 当用户点击主页按钮时,RoboSpice 请求结果

android - 适用于Android的Youtube Gdata

java - 使用Java或C++等编程语言有效地模拟SQL分组子句,而不必求助于RDBMS

c++ - 什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件

c++ - 在c++中构建和运行c++ — c++脚本(而不是lua)

Android 将 CID 位置转换为坐标

android - 获取存储在 Google Cloud Storage 给定子目录中的所有对象

qt - 如何制作带有一组按钮的拆分器?

c++ - 从 C++ 中的二进制文件读取时将 char * 转换为 double?

qt - 如何在 Windows 上使用 cmake find_package 设置 qt5 路径?