Не удается найти символ «getSystemService» в AudioManager

Я использую следующий код для создания экземпляра AudioManager :

AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true);

при компиляции я получаю сообщение об ошибке:

Cannot find symbol  : method getSystemService(java.lang.String)
AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

Я также пытался использовать:

AudioManager mgr = (AudioManager)Context.getSystemService(Context.AUDIO_SERVICE);

и я получил ошибку:

non-static method getSystemService(java.lang.String) cannot be referenced from a static context

Как правильно использовать класс и как избежать вышеуказанных ошибок!


person Sid    schedule 07.06.2014    source источник
comment
stackoverflow .com/questions/12555828/, вам нужно использовать контекст класса активности вместо контекста, если вы не находитесь в классе активности   -  person Shayan Pourvatan    schedule 07.06.2014
comment
Вам нужен экземпляр Context, чтобы использовать этот метод. Где находится этот код?   -  person matiash    schedule 07.06.2014
comment
@shayanpourvatan: я просмотрел этот пост, но это не помогло!   -  person Sid    schedule 07.06.2014
comment
Вы пробовали очистить свой проект? Каков контекст вызова метода? Насколько я могу судить, вы вызываете метод getSystemService из статического контекста.   -  person arielnmz    schedule 07.06.2014
comment
@matiash я использую этот код в своем приложении для камеры.   -  person Sid    schedule 07.06.2014
comment
см. мой комментарий к редактированию @Sid, и если вы не находитесь в классе активности, используйте контекст активности   -  person Shayan Pourvatan    schedule 07.06.2014
comment
поэтому я должен сначала создать экземпляр класса Context, а затем использовать его?   -  person Sid    schedule 07.06.2014
comment
вам нужно передать контекст активности конструктору этого класса   -  person Shayan Pourvatan    schedule 07.06.2014
comment
Не могли бы вы опубликовать блок (класс, метод), который окружает вызов этого метода?   -  person arielnmz    schedule 07.06.2014
comment
@Sid Нет, вам нужно откуда-то получить экземпляр Context. Пожалуйста, разместите прилагаемый класс.   -  person matiash    schedule 07.06.2014


Ответы (1)


используйте следующее в своем основном классе деятельности

Context context=getApplicationContext();

затем передайте контекст в свой конструктор класса, в котором вы создаете объект AudiManager. Затем используйте

AudioManager mgr = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true);
person kalimba    schedule 07.06.2014