2016-07-27 6 views
0

Wie kann ich wichtige Ereignisse erhalten, wenn ein Benutzer verschiedene Tasten in einem Service- oder Broadcast-Empfänger drückt? Ich bin speziell daran interessiert zu wissen, wann der Benutzer eine Lautstärketaste drückt, so dass ich etwas anderes im Hintergrund auslösen kann, wie zum Beispiel ein Diktiergerät.So erkennen Sie Schlüsselereignisse im Service- und Broadcast-Empfänger

Leider haben meine Internetsuchen keine Ergebnisse erbracht.

+0

Haben Sie etwas versuchen? –

+0

Sie müssen klein beginnen, wie ein Broadcast-Empfänger und wie kann ich es starten. Analysieren Sie als Nächstes die Sprachaufnahmemuster. –

+0

Natürlich. Ich probiere alles aus, was ich gegoogelt habe. Aber funktioniert nicht! –

Antwort

1

So etwas wie die folgenden funktionieren sollte:
Von offiziellen Dokumentation:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name"...> 
    //code, like activities, etc 

    <receiver android:name="com.example.test.VolumeBroadcast" > 
     <intent-filter> 
      <action android:name="android.intent.action.MEDIA_BUTTON" /> 
     </intent-filter> 
</application> 

Beispiel eines Empfängers:

public class VolumeBroadcast extends BroadcastReceiver{ 

     public void onReceive(Context context, Intent intent) { 
      //check the intent something like: 
      if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { 
       KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 
       if (KeyEvent.KEYCODE_MEDIA_PLAY == event.getKeyCode()) { 
       // Handle key press. 
       } 
      } 
     } 
    } 

Die Art und Weise Sie sich registrieren ist wie folgt aus:

AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE); 
// Start listening for button presses 
am.registerMediaButtonEventReceiver(RemoteControlReceiver); 
// Stop listening for button presses 
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver); 

Seite unten:
Audio Playback

Verwandte Themen