2016-07-27 30 views
0

如何在用戶按下服務或廣播接收器中的各種按鈕時獲得關鍵事件?我特別想知道用戶何時按下音量按鈕,以便可以在背景中觸發其他內容,如錄音機。如何檢測服務中的關鍵事件和廣播接收器

不幸的是,我的網絡搜索沒有產生任何結果。

+0

您是否嘗試過的東西? –

+0

您需要從小處着手,比如什麼是廣播接收器,我該如何啓動它。接下來分析錄音筆樣本。 –

+0

當然。我嘗試了所有我用Google搜索的東西。但不工作! –

回答

1

像下面這樣的東西應該工作:
從官方文檔:接收的

<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> 

例子:

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. 
       } 
      } 
     } 
    } 

您註冊的方法是這樣的:

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

頁面下:
Audio Playback