在Java类中使用Android API,我试图以双精度形式返回是否支持振动功能。我需要它加倍,因为这是我正在使用的框架中支持的数据类型。我尝试了两种方法,但第一种方法会使编译器崩溃,第二种方法只是在应用程序中返回“未定义”。
这崩溃了,
public static double vibration_supported() {
double value = 0; // complains about it not being final, but you cannot set the value if it is
Handler h = new Handler(RunnerJNILib.ms_context.getMainLooper());
h.post(new Runnable() {
@Override
public void run() {
Vibrator v = (Vibrator) RunnerJNILib.ms_context.getSystemService(Context.VIBRATOR_SERVICE);
if (v.hasVibrator()) {
value = 1;
} else {
value = 0;
}
}
});
return value;
}
这只是返回未定义。
public static double vibration_supported() {
double value = 0;
Vibrator v = (Vibrator) RunnerJNILib.ms_context.getSystemService(Context.VIBRATOR_SERVICE);
if (v.hasVibrator()) {
value = 1;
return value;
} else {
value = 0;
return value;
}
}