【发布时间】:2015-04-15 07:38:26
【问题描述】:
我正在使用 Qt 部署 Android 应用。
我想让手机振动。所以我尝试使用QAndroidJniObject 执行this code。
Java 代码:
import android.os.Vibrator;
Vibrator v = (Vibrator) this.context.getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(500);
C++ Qt 代码:
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
if ( activity.isValid() )
{
QAndroidJniObject serviceName = QAndroidJniObject::fromString("android.content.Context.VIBRATOR_SERVICE");
if ( serviceName.isValid() )
{
QAndroidJniObject vibrator = activity.callObjectMethod("getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;",serviceName.object<jobject>());
if ( vibrator.isValid() )
{
vibrator.callMethod<void>("vibrate", "(J)V", 1000);
}
// vibrator is actually not valid!
}
}
vibrator.isValid() 返回 false,我不知道为什么....这不是我第一次尝试做这种事情,但在这里,我无法让它工作。
注意:我的应用设置了android.permission.VIBRATE
【问题讨论】: