Android APIs
public abstract class

MidiDeviceService

extends Service
java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ android.media.midi.MidiDeviceService

Class Overview

A service that implements a virtual MIDI device. Subclasses must implement the onGetInputPortReceivers() method to provide a list of MidiReceivers to receive data sent to the device's input ports. Similarly, subclasses can call getOutputPortReceivers() to fetch a list of MidiReceivers for sending data out the output ports.

To extend this class, you must declare the service in your manifest file with an intent filter with the SERVICE_INTERFACE action and meta-data to describe the virtual device. For example:

 <service android:name=".VirtualDeviceService"
          android:label="@string/service_name">
     <intent-filter>
         <action android:name="android.media.midi.MidiDeviceService" />
     </intent-filter>
           <meta-data android:name="android.media.midi.MidiDeviceService"
                android:resource="@xml/device_info" />
 </service>

Summary

Constants
String SERVICE_INTERFACE
[Expand]
Inherited Constants
From class android.app.Service
From class android.content.Context
From interface android.content.ComponentCallbacks2
Public Constructors
MidiDeviceService()
Public Methods
final MidiDeviceInfo getDeviceInfo()
returns the MidiDeviceInfo instance for this service
final MidiReceiver[] getOutputPortReceivers()
Returns an array of MidiReceiver for the device's output ports.
IBinder onBind(Intent intent)
Return the communication channel to the service.
void onClose()
Called to notify when our device has been closed by all its clients
void onCreate()
Called by the system when the service is first created.
void onDeviceStatusChanged(MidiDeviceStatus status)
Called to notify when an our MidiDeviceStatus has changed
abstract MidiReceiver[] onGetInputPortReceivers()
Returns an array of MidiReceiver for the device's input ports.
[Expand]
Inherited Methods
From class android.app.Service
From class android.content.ContextWrapper
From class android.content.Context
From class java.lang.Object
From interface android.content.ComponentCallbacks2
From interface android.content.ComponentCallbacks

Constants

public static final String SERVICE_INTERFACE

Added in API level 23

Constant Value: "android.media.midi.MidiDeviceService"

Public Constructors

public MidiDeviceService ()

Added in API level 23

Public Methods

public final MidiDeviceInfo getDeviceInfo ()

Added in API level 23

returns the MidiDeviceInfo instance for this service

Returns
  • our MidiDeviceInfo

public final MidiReceiver[] getOutputPortReceivers ()

Added in API level 23

Returns an array of MidiReceiver for the device's output ports. These can be used to send data out the device's output ports.

Returns
  • array of MidiReceivers

public IBinder onBind (Intent intent)

Added in API level 23

Return the communication channel to the service. May return null if clients can not bind to the service. The returned IBinder is usually for a complex interface that has been described using aidl.

Note that unlike other application components, calls on to the IBinder interface returned here may not happen on the main thread of the process. More information about the main thread can be found in Processes and Threads.

Parameters
intent The Intent that was used to bind to this service, as given to Context.bindService. Note that any extras that were included with the Intent at that point will not be seen here.
Returns
  • Return an IBinder through which clients can call on to the service.

public void onClose ()

Added in API level 23

Called to notify when our device has been closed by all its clients

public void onCreate ()

Added in API level 23

Called by the system when the service is first created. Do not call this method directly.

public void onDeviceStatusChanged (MidiDeviceStatus status)

Added in API level 23

Called to notify when an our MidiDeviceStatus has changed

Parameters
status the number of the port that was opened

public abstract MidiReceiver[] onGetInputPortReceivers ()

Added in API level 23

Returns an array of MidiReceiver for the device's input ports. Subclasses must override this to provide the receivers which will receive data sent to the device's input ports. An empty array should be returned if the device has no input ports.

Returns
  • array of MidiReceivers