下面列出了怎么用android.media.midi.MidiManager.DeviceCallback的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void onDeviceAdded(final MidiDeviceInfo device) {
// Call all of the locally registered callbacks.
for(Map.Entry<DeviceCallback, Handler> item : mCallbacks.entrySet()) {
final DeviceCallback callback = item.getKey();
Handler handler = item.getValue();
if(handler == null) {
callback.onDeviceAdded(device);
} else {
handler.post(new Runnable() {
@Override
public void run() {
callback.onDeviceAdded(device);
}
});
}
}
}
@Override
public void onDeviceRemoved(final MidiDeviceInfo device) {
for(Map.Entry<DeviceCallback, Handler> item : mCallbacks.entrySet()) {
final DeviceCallback callback = item.getKey();
Handler handler = item.getValue();
if(handler == null) {
callback.onDeviceRemoved(device);
} else {
handler.post(new Runnable() {
@Override
public void run() {
callback.onDeviceRemoved(device);
}
});
}
}
}
@Override
public void onDeviceStatusChanged(final MidiDeviceStatus status) {
for(Map.Entry<DeviceCallback, Handler> item : mCallbacks.entrySet()) {
final DeviceCallback callback = item.getKey();
Handler handler = item.getValue();
if(handler == null) {
callback.onDeviceStatusChanged(status);
} else {
handler.post(new Runnable() {
@Override
public void run() {
callback.onDeviceStatusChanged(status);
}
});
}
}
}
public void registerDeviceCallback(DeviceCallback callback, Handler handler) {
if (mUseProxy) {
// Keep our own list of callbacks.
mCallbacks.put(callback, handler);
} else {
mMidiManager.registerDeviceCallback(callback, handler);
}
}
public void unregisterDeviceCallback(DeviceCallback callback) {
if (mUseProxy) {
mCallbacks.remove(callback);
} else {
// This works on N or later.
mMidiManager.unregisterDeviceCallback(callback);
}
}