Enviar un archivo usando el perfil de inserción de objetos OBEX de Bluetooth (OPP)

Is Hay alguna manera de enviar un archivo mediante la API de Bluetooth androide usando OBEX?

Necesito enviar un archivo a una impresora que solo sea compatible con OBEX OPP.

I puede enviar el archivo con la intención ACTION_SEND androide a la impresora sin problemas, pero me gustaría que enviar mediante programación ..

I puede conectarse a la impresora Bluetooth usando OBEX OPP UUID (1105) con el método createRfcommSocketToServiceRecord (), pero entonces debe seguir las especificaciones OBEX para enviar un archivo mediante OBEX .. no es tan simple como escribir bytes a la toma de salida ..

But si el ACTION_SEND intención puede manejar esto, ¿por qué no hay ninguna API para los desarrolladores para enviar los archivos?

I también la inspección de algunas librerías de terceros como Bluecove, pero todavía no conseguir que funcione .. (Nexus One & Galaxy Tab lanzan una excepción diciendo que bluecove_armv71 biblioteca nativa no está disponible .. y LG Optimus One dice que bluecove_armv61 no está disponible ..)

Estoy atascado, alguna idea?

SOLUCIÓN DE TRABAJO

For cualquiera que trate de enviar un archivo a un dispositivo Bluetooth sin suerte, proporciono una solución de trabajo utilizando los proveedores de contenidos (gracias a KPBird):

Grab la clase java BluetoothShare desdeaqu

Than, el código siguiente se envía un archivo en la tarjeta SD a un dispositivo Bluetooth:

BluetoothDevice device;
String filePath = Environment.getExternalStorageDirectory().toString() + "/file.jpg";

ContentValues values = new ContentValues();
values.put(BluetoothShare.URI, Uri.fromFile(new File(filePath)).toString());
values.put(BluetoothShare.DESTINATION, device.getAddress());
values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);
Uri contentUri = getContentResolver().insert(BluetoothShare.CONTENT_URI, values);

ACTUALIZA

Some personas están experimentando problemas con la solución anterior, se ha probado en los siguientes dispositivos:

Trabaja en:

LG Optimus One (Android 2.1)l deseo @HTC (Android 2.2)Google Nexus One (Android 2.2 y 2.3)Samsung Galaxy S2 (Android 4.0.3)HTC Amaze (Android 2.3.4)

Tiene problemas en:

LG P500 (Android 2.3.3)Galaxy TAB P500 (Android 2.2)Google Nexus S (Android 4.1.2)

If que son capaces de probar este fragmento en dispositivos que no están en la lista, por favorprovide los detalles de los dispositivos (Marca, nombre, versión androide, etc ..) con el que se prueba, y los resultados de las pruebas, en un comentario a continuación, voy a actualizar la cuestión incluyendo sus datos.

Respuestas a la pregunta(4)

Su respuesta a la pregunta