MidiUmpDeviceService


public abstract class MidiUmpDeviceService
extends Service

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


A service that implements a virtual MIDI device for Universal MIDI Packets (UMP). 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. Unlike traditional MIDI byte streams, only complete UMPs should be sent. Unlike with MidiDeviceService, the number of input and output ports must be equal.

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.MidiUmpDeviceService" />
     </intent-filter>
     <property android:name="android.media.midi.MidiUmpDeviceService"
             android:resource="@xml/device_info" />
 </service>

Summary

Constants

String SERVICE_INTERFACE

Inherited constants

Public constructors

MidiUmpDeviceService()

Public methods

final MidiDeviceInfo getDeviceInfo()

Returns the MidiDeviceInfo instance for this service

final List<MidiReceiver> getOutputPortReceivers()

Returns a list 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 the virtual MIDI device running in this service 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 the MidiDeviceStatus has changed

abstract List<MidiReceiver> onGetInputPortReceivers()

Returns a list of MidiReceiver for the device's input ports.

Inherited methods

Constants

SERVICE_INTERFACE

public static final String SERVICE_INTERFACE

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

Public constructors

MidiUmpDeviceService

public MidiUmpDeviceService ()

Public methods

getDeviceInfo

public final MidiDeviceInfo getDeviceInfo ()

Returns the MidiDeviceInfo instance for this service

Returns
MidiDeviceInfo the MidiDeviceInfo of the virtual MIDI device if it was successfully created This value may be null.

getOutputPortReceivers

public final List<MidiReceiver> getOutputPortReceivers ()

Returns a list of MidiReceiver for the device's output ports. These can be used to send data out the device's output ports. The number of input and output ports must be equal and non-zero.

Returns
List<MidiReceiver> the list of MidiReceivers This value cannot be null.

onBind

public IBinder onBind (Intent intent)

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 Intent: This value cannot be null.

Returns
IBinder This value may be null.

onClose

public void onClose ()

Called to notify when the virtual MIDI device running in this service has been closed by all its clients

onCreate

public void onCreate ()

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

onDeviceStatusChanged

public void onDeviceStatusChanged (MidiDeviceStatus status)

Called to notify when the MidiDeviceStatus has changed

Parameters
status MidiDeviceStatus: the current status of the MIDI device This value cannot be null.

onGetInputPortReceivers

public abstract List<MidiReceiver> onGetInputPortReceivers ()

Returns a list 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. The number of input and output ports must be equal and non-zero.

Returns
List<MidiReceiver> list of MidiReceivers This value cannot be null.