BluetoothAvrcpControllerpublic final class BluetoothAvrcpController extends Object implements BluetoothProfileThis class provides the public APIs to control the Bluetooth AVRCP Controller
profile.
BluetoothAvrcpController is a proxy object for controlling the Bluetooth AVRCP
Service via IPC. Use {@link BluetoothAdapter#getProfileProxy} to get
the BluetoothAvrcpController proxy object.
{@hide} |
Fields Summary |
---|
private static final String | TAG | private static final boolean | DBG | private static final boolean | VDBG | public static final String | ACTION_CONNECTION_STATE_CHANGEDIntent used to broadcast the change in connection state of the AVRCP Controller
profile.
This intent will have 3 extras:
- {@link #EXTRA_STATE} - The current state of the profile.
- {@link #EXTRA_PREVIOUS_STATE}- The previous state of the profile.
- {@link BluetoothDevice#EXTRA_DEVICE} - The remote device.
{@link #EXTRA_STATE} or {@link #EXTRA_PREVIOUS_STATE} can be any of
{@link #STATE_DISCONNECTED}, {@link #STATE_CONNECTING},
{@link #STATE_CONNECTED}, {@link #STATE_DISCONNECTING}.
Requires {@link android.Manifest.permission#BLUETOOTH} permission to
receive. | private android.content.Context | mContext | private ServiceListener | mServiceListener | private IBluetoothAvrcpController | mService | private BluetoothAdapter | mAdapter | private final IBluetoothStateChangeCallback | mBluetoothStateChangeCallback | private final android.content.ServiceConnection | mConnection |
Constructors Summary |
---|
BluetoothAvrcpController(android.content.Context context, ServiceListener l)Create a BluetoothAvrcpController proxy object for interacting with the local
Bluetooth AVRCP service.
/*package*/
mContext = context;
mServiceListener = l;
mAdapter = BluetoothAdapter.getDefaultAdapter();
IBluetoothManager mgr = mAdapter.getBluetoothManager();
if (mgr != null) {
try {
mgr.registerStateChangeCallback(mBluetoothStateChangeCallback);
} catch (RemoteException e) {
Log.e(TAG,"",e);
}
}
doBind();
|
Methods Summary |
---|
void | close()
mServiceListener = null;
IBluetoothManager mgr = mAdapter.getBluetoothManager();
if (mgr != null) {
try {
mgr.unregisterStateChangeCallback(mBluetoothStateChangeCallback);
} catch (Exception e) {
Log.e(TAG,"",e);
}
}
synchronized (mConnection) {
if (mService != null) {
try {
mService = null;
mContext.unbindService(mConnection);
} catch (Exception re) {
Log.e(TAG,"",re);
}
}
}
| boolean | doBind()
Intent intent = new Intent(IBluetoothAvrcpController.class.getName());
ComponentName comp = intent.resolveSystemService(mContext.getPackageManager(), 0);
intent.setComponent(comp);
if (comp == null || !mContext.bindServiceAsUser(intent, mConnection, 0,
android.os.Process.myUserHandle())) {
Log.e(TAG, "Could not bind to Bluetooth AVRCP Controller Service with " + intent);
return false;
}
return true;
| public void | finalize()
close();
| public java.util.List | getConnectedDevices(){@inheritDoc}
if (VDBG) log("getConnectedDevices()");
if (mService != null && isEnabled()) {
try {
return mService.getConnectedDevices();
} catch (RemoteException e) {
Log.e(TAG, "Stack:" + Log.getStackTraceString(new Throwable()));
return new ArrayList<BluetoothDevice>();
}
}
if (mService == null) Log.w(TAG, "Proxy not attached to service");
return new ArrayList<BluetoothDevice>();
| public int | getConnectionState(BluetoothDevice device){@inheritDoc}
if (VDBG) log("getState(" + device + ")");
if (mService != null && isEnabled()
&& isValidDevice(device)) {
try {
return mService.getConnectionState(device);
} catch (RemoteException e) {
Log.e(TAG, "Stack:" + Log.getStackTraceString(new Throwable()));
return BluetoothProfile.STATE_DISCONNECTED;
}
}
if (mService == null) Log.w(TAG, "Proxy not attached to service");
return BluetoothProfile.STATE_DISCONNECTED;
| public java.util.List | getDevicesMatchingConnectionStates(int[] states){@inheritDoc}
if (VDBG) log("getDevicesMatchingStates()");
if (mService != null && isEnabled()) {
try {
return mService.getDevicesMatchingConnectionStates(states);
} catch (RemoteException e) {
Log.e(TAG, "Stack:" + Log.getStackTraceString(new Throwable()));
return new ArrayList<BluetoothDevice>();
}
}
if (mService == null) Log.w(TAG, "Proxy not attached to service");
return new ArrayList<BluetoothDevice>();
| private boolean | isEnabled()
if (mAdapter.getState() == BluetoothAdapter.STATE_ON) return true;
return false;
| private boolean | isValidDevice(BluetoothDevice device)
if (device == null) return false;
if (BluetoothAdapter.checkBluetoothAddress(device.getAddress())) return true;
return false;
| private static void | log(java.lang.String msg)
Log.d(TAG, msg);
| public void | sendPassThroughCmd(BluetoothDevice device, int keyCode, int keyState)
if (DBG) Log.d(TAG, "sendPassThroughCmd");
if (mService != null && isEnabled()) {
try {
mService.sendPassThroughCmd(device, keyCode, keyState);
return;
} catch (RemoteException e) {
Log.e(TAG, "Error talking to BT service in sendPassThroughCmd()", e);
return;
}
}
if (mService == null) Log.w(TAG, "Proxy not attached to service");
|
|