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()を使用しています。 Link to some code to vibrate on stackoverflow簡単な方法で電話を鳴らす(ソースコードアンドロイド)
最初にgetsystemservice()
ファンクションだけが機能せず、どこか読んだら、context object
で呼び出す必要があります。私はコンテキストオブジェクトを作った。次に、コンテキストを初期化する必要があると言います。私はthis.context = context
を試しましたが、別のエラーが出ます。私はコンパイルエラーのこれらのサイクルに入って、電話を単に振動させるだけの簡単な仕事になるはずです。私がここで間違っていることを教えてください。
この質問は、私が他のスレッドから経験したものとは異なります。他のスレッドがgetsystemservice()だけを使用する答えを出しているが、コンテキストが必要なので動作しない。
更新:ここにこのスレッドに出くわした
How to pass context from MainActivity to another class in 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;
そして私はあなたがVibrator service
を呼び出しているところから、この
MyNonActivityClass mClass = new MyNonActivityClass(this);
あなたが権限を追加する必要がありますマニフェストファイル と動作すると思われるベローコードを追加する // 150ミリ秒間振動する プライベートvoid shakeItBaby(if(Build.VERSION.SDK_INT> = 26){ ((Vibrator)getSystemService(VIBRATOR_SERVICE)).vibrate VibrationEffect.createOneShot(150、VibrationEffect.DEFAULT_AMPLITUDE)); } else { ((Vibrator)getSystemService(VIBRATOR_SERVICE))。vibrate(150); } } –
androidmanifest.xmlで振動の許可を追加しました – threewire
どこから呼び出していますか? –