【发布时间】:2015-06-13 09:12:25
【问题描述】:
我想了解Android中的电池技术。我已经用 broadcastreceiver 完成并很好地完成了 Javacode。但是当我在 Qt 中使用 java 类获取电池时,意图不会从 java 代码运行。所以我决定让它在 Qt 中运行。
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
if (activity.isValid())
{
QAndroidJniObject callConstant = QAndroidJniObject::getStaticObjectField<jstring>("android/content/Intent", "ACTION_BATTERY_CHANGED");
QAndroidJniObject callIntent("android/content/Intent", "(Ljava/lang/String;)V", callConstant.object());
QAndroidJniObject param = QAndroidJniObject::fromString("technology" ) ;
mySubstring = callIntent.callObjectMethod("getStringExtra"
,"(Ljava/lang/String;)Ljava/lang/String;"
,param.object()) ;
if(callIntent.isValid())
{
activity.callObjectMethod("startActivity", "(Landroid/content/Intent;)V", callIntent.object<jobject>());
//activity.callMethod<void>("startActivity","(Landroid/content/Intent;)V", callIntent.object<jobject>());
}
}
这两行都使程序严重停止。我还是没发现
activity.callObjectMethod("startActivity", "(Landroid/content/Intent;)V", callIntent.object<jobject>());
//activity.callMethod<void>("startActivity","(Landroid/content/Intent;)V", callIntent.object<jobject>());
Pro 周末好! .
【问题讨论】:
标签: android qt android-intent battery