2017-08-14 4 views
0

Ich versuche stumm das Telefon Lautstärke kontinuierlich im Hintergrund mit meiner Anwendung.Wie man die Lautstärke des Telefons in Android stumm schaltet?

für den Zweck habe ich erstellt eine Service, der die Lautstärke stumm geschaltet, aber die logcat zeigen Ausnahme. Bitte helfen Sie mir, es herauszufinden.

public class MyService extends Service implements RecognitionListener { 
protected AudioManager mAudioManager; 
protected SpeechRecognizer mSpeechRecognizer; 
protected Intent mSpeechRecognizerIntent; 
private final int MY_PERMISSIONS_RECORD_AUDIO = 1; 
String LOG_TAG="---------->"; 
SpeechRecognizer speech; 
Intent recognizerIntent; 
int maxVolume = 15; 
Context context; 

static final int MSG_RECOGNIZER_START_LISTENING = 1; 
static final int MSG_RECOGNIZER_CANCEL = 2; 

@Override 
public void onCreate() { 
    Toast.makeText(this, "SErivce Runnng", Toast.LENGTH_SHORT).show(); 
    Log.d("-------->","SErvice is Runnign"); 
    speech = SpeechRecognizer.createSpeechRecognizer(this); 
    speech.setRecognitionListener(this); 
    recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, this.getPackageName()); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1); 

    Log.e("------------>","Running here"); 
    AudioManager audioManager=(AudioManager)context.getSystemService(context.AUDIO_SERVICE); 
    audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); 
    Toast.makeText(context, "Set on Vibration", Toast.LENGTH_SHORT).show(); 
    Log.e("------------>","VIbration Set"); 


} 

Dies ist die logcat ist

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference 
+0

Mögliche Duplikate von [Was ist eine NullPointerException, und wie kann ich es beheben?] (Https://StackOverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) –

+0

Ihr Problem ist, dass Sie# 39; t initialisiert 'Kontext'. 'getSystemService' ist nicht statisch und benötigt eine Referenz eines' Context'. Da 'Service' 'Context's sind, müssen Sie keinen definieren, also entfernen Sie einfach die Zeile, die Sie definiert haben, und' context.' aus 'context.getSystemService' –

Antwort

0

Sie haben so nicht initialisiert Kontext, haben Sie Nullpointer Fehler in getSystemService.

Sie können unter einem für das versuchen:

onCreate() { 
    context = getApplicationContext(); 
} 

ODER

getApplicationContext().getSystemService(context.AUDIO_SERVICE); 

Und noch eine Sache, die auf korrekten Fall innerhalb getSystemService Klammer Kontext sein.

+1

Er benötigt keine Anwendung' Context', 'Service 's sind schon' Context's ... –

Verwandte Themen