MidiDeviceService

public abstract class MidiDeviceService
extends Service

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


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

Inherited constants

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 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 an our MidiDeviceStatus has changed

abstract MidiReceiver[] onGetInputPortReceivers()

Returns an array of MidiReceiver for the device's input ports.

Inherited methods

Constants

SERVICE_INTERFACE

Added in API level 23
public static final String SERVICE_INTERFACE

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

Public constructors

MidiDeviceService

public MidiDeviceService ()

Public methods

getDeviceInfo

Added in API level 23
public final MidiDeviceInfo getDeviceInfo ()

Returns the MidiDeviceInfo instance for this service

Returns
MidiDeviceInfo the MidiDeviceInfo of the virtual MIDI device

getOutputPortReceivers

Added in API level 23
public final MidiReceiver[] getOutputPortReceivers ()

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
MidiReceiver[] array of MidiReceivers

onBind

Added in API level 23
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: 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
IBinder Return an IBinder through which clients can call on to the service.

onClose

Added in API level 23
public void onClose ()

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

onCreate

Added in API level 23
public void onCreate ()

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

onDeviceStatusChanged

Added in API level 23
public void onDeviceStatusChanged (MidiDeviceStatus status)

Called to notify when an our MidiDeviceStatus has changed

Parameters
status MidiDeviceStatus: the current status of the MIDI device

onGetInputPortReceivers

Added in API level 23
public abstract MidiReceiver[] onGetInputPortReceivers ()

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
MidiReceiver[] array of MidiReceivers