Как я могу решить "getSystemservices(String) " ошибка в приложении Android

Я пытаюсь использовать вибрацию в моем приложении для Android, но он показывает ошибку, The method getSystemservices(String) undefined for the type,

Вот код, который я использую

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

Как я могу решить эту ошибку, пожалуйста, помогите мне. Спасибо

4 ответа

Решение

Открытый класс MyClass {

private void Context mContext;

public MyClass(Context context){
    mContext = context;
}

public void someFunction(){
    // code
    Vibrator v = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
    // .. code
}

}

Добавьте это разрешение в свой файл манифеста:

<uses-permission android:name="android.permission.VIBRATE" />

Пытаться:

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
v.vibrate(500);

Не забудьте включить разрешение в файл AndroidManifest.xml:

<uses-permission android:name="android.permission.VIBRATE"/>

Возможно, тот класс, который вы называете, не является Activity или какой-то другой класс, который имеет свой собственный контекст. Так что если вы вызываете это в функции, вы должны сделать что-то вроде этого:

public void someFunction(Context context){
   // .. code
   Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
   // .. more code
}

или в классе

public class MyClass {

    private Context mContext;

    public MyClass(Context context){
        mContext = context;
    }

    public void someFunction(){
        // code
        Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
        // .. code
    }
}

и как уже упоминалось в других ответах, не забудьте добавить разрешение в ваш файл манифеста:

<uses-permission android:name="android.permission.VIBRATE"/>

Надеюсь это поможет!:)

Другие вопросы по тегам