找不到一种简单的方法来振动手机(源代码Android)


Context mcontext;
this.Context= mcontext;
//private Context context;
//this.context=context;
//super(mcontext);
Vibrator mVibrator = (Vibrator) mcontext.getSystemService(Context.VIBRATOR_SERVICE);
mVibrator.vibrate(300)

我在线搜索了很多简单的代码来发出哔哔声,然后发现了一个。但是我无法添加和编译几行代码以使手机振动。我遇到的所有线程都使用GetSystemService()。链接到某些代码以振动stackoverflow

第一个getsystemservice()功能仅起作用,我阅读的地方需要由context object调用。我做了一个上下文对象。然后说需要初始化上下文。我尝试了this.context = context,这给出了另一个错误。我正在遇到这些汇编错误的周期,因为这应该是一项简单的工作来振动手机。请告诉我我在这里做错了什么。

我从其他线程中获得了经验,这个问题是不同的。由于其他线程给出了使用GetSystemService()单独使用的答案,但这是不起作用的,因为它需要上下文。

更新:在此处遇到此线程如何将上下文从Main Activity传递给Android中的另一类?

所以我做了

public class MyNonActivityClass{
// variable to hold context
private Context context;
//save the context received via constructor in a local variable
public MyNonActivityClass(Context context){
this.context=context;
}
}

,但随后我遇到了Mcallback的错误。

private final Callback mCallback;

然后在哪里添加此

MyNonActivityClass mClass = new MyNonActivityClass(this);

从您调用Vibrator service的位置?

如果是从活动中,则

Vibrator mVibrator = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);
    mVibrator.vibrate(300)

,或者如果是从Frgament那里,

 Vibrator mVibrator = (Vibrator) getActivity().getSystemService(Context.VIBRATOR_SERVICE);
    mVibrator.vibrate(300)

或在您的代码中更新此信息,例如

void vibrate(Context mcontext ){
    Vibrator mVibrator = (Vibrator) 
    mcontext.getSystemService(Context.VIBRATOR_SERVICE);
    mVibrator.vibrate(300)
}

最新更新