gpt4 book ai didi

java - 如何在不扩展 Activity 的类中访问android中的振动器?

转载 作者:行者123 更新时间:2023-12-01 23:08:26 25 4
gpt4 key购买 nike

我正在尝试使用名为 VibrationManager 的类中的以下内容来访问振动器,并且该类未扩展 Activity

Vibrator v =(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

但是 Eclipse 会抛出类似的错误

VibrationManager 类型的 getSystemService(String) 方法未定义

这是我的整个类(class)

public class VibrationManager {

private static VibrationManager me = null;

Vibrator v = null;

private Vibrator getVibrator(){
if(v == null){
v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}
return v;
}

public static VibrationManager getManager() {
if(me == null){
me = new VibrationManager();
}
return me;
}

public void vibrate(long[] pattern){

}

}

请帮忙

最佳答案

您的类没有方法getSystemService,因为此类未扩展Activity

如果您不想使用 getSystemService 方法,则需要类 VibrationManager 来扩展 Activity,或者需要接收该 Activity 的上下文。

只需更改代码以使用上下文,因为您还需要在静态调用中获取上下文。

public class VibrationManager {

private static VibrationManager me;
private Context context;

Vibrator v = null;

private Vibrator getVibrator(){
if(v == null){
v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
}
return v;
}

public static VibrationManager getManager(Context context) {
if(me == null){
me = new VibrationManager();
}
me.setContext(context);
return me;
}

private void setContext(Context context){
this.context = context;
}

public void vibrate(long[] pattern){

}
}

关于java - 如何在不扩展 Activity 的类中访问android中的振动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22413411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com