现在,我想从我的应用程序调用这个驱动程序,但是我使用QT。我找到了调用java代码的类QAndroidJNIObject。我还在github.com/demantz/RFAnalyzer/blob/master/app/src/main/java/com/mantz_it/rfanalyzer/MainActivity.java找到了一个java的例子。
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("iqsrc://-a 127.0.0.1 -p 1234 -n 1"));
startActivityForResult(intent, RTL2832U_RESULT_CODE);
}
catch (ActivityNotFoundException e)
{
Log.e(LOGTAG, "createSource: RTL2832U is not installed");
...
}但是,我无法找到用C++/Qt编写正确代码的方法,以便像Java中的示例那样进行相同的调用。我不确定这个java代码是正确的还是遗漏了什么。
有人能帮我吗?
此外,我还想问一下,我是否可以从Qt代码中与anet.hlibs建立tcp连接?
发布于 2015-12-26 07:47:34
您需要使用QJniAndroidObject类来创建和操作JNI对象。这并不总是显而易见的,但它最终还是奏效了。您的9行Java最有可能成为50行C++代码。我建议您逐一对每一行进行代码转换,并始终检查对象是否有效(QJniAndroidObject::isValid())。
下面是一个创建Intent并启动一个活动的示例:Qt上的startActivity,什么都不显示
尝试编写一些代码,然后发布另一个这样的问题:如果它失败了(对于不熟悉QJniAndroidObject的C++开发人员来说,创建和操作Java的语法并不总是显而易见的)。
https://stackoverflow.com/questions/28610418
复制相似问题