Estoy tratando de enviar un archivo a través de bluetooth en un dispositivo Android. He hecho descubrimiento, conexión y he hecho un socket bluetooth. El problema es cuando estoy escribiendo la matriz de bytes en la secuencia de salida del socket bluetooth, el lado que recibe no recibe nada, aunque acepta que algo está siendo enviado.Android Bluetooth enviando archivo
Esto es lo que hace Iam (malo es el adaptador Bluetooth)
Por favor avise.
try
{
BluetoothDevice dev = bad.getRemoteDevice(a);
bad.cancelDiscovery();
dev.createRfcommSocketToServiceRecord(new UUID(1111, 2222));
Method m = dev.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
bs = (BluetoothSocket) m.invoke(dev, Integer.valueOf(1));
bs.connect();
tmpOut = bs.getOutputStream();
}catch(Exception e)
{
}
File f = new File(filename);
byte b[] = new byte[(int) f.length()];
try
{
FileInputStream fileInputStream = new FileInputStream(f);
fileInputStream.read(b);
}catch(IOException e)
{
Log.d(TAG, "Error converting file");
Log.d(TAG, e.getMessage());
}
try {
tmpOut.write(b);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
¿Qué se hace esto para: dev.createRfcommSocketToServiceRecord (nuevo UUID (1111, 2222)) ;? Usted crea un BluetoothSocket usando un UUID sin usarlo. Método m = dev.getClass(). GetMethod ("createRfcommSocket", new Class [] {int.class}); bs = (BluetoothSocket) m.invoke (dev, Integer.valueOf (1)); Abre un BluetoothSocket en el RfComm Channel 1. Entonces, solo si el dispositivo al que está intentando enviar un archivo está escuchando en este canal, podrá recibir el archivo – Weeman
OK, eliminé esa línea ahora, pero aún no funciona. Lancé el modo de depuración y me muestra que mi tmpOut (outputstream) es nulo. ¿Soes esto significa un problema con mi zócalo bluetooth? Además, ¿un dispositivo escucha en el canal RFComm 1 de manera predeterminada o también necesito tener un receptor en el dispositivo receptor? Solo quería enviar un archivo que podría ser recibido por el servicio bluetooth predeterminado de otro teléfono. – exorcist
Las aplicaciones comunes, como la transferencia de archivos, se especifican en los denominados perfiles Bluetooth (http://en.wikipedia.org/wiki/Bluetooth_profile), por lo que si desea transferir un archivo utilizando el "servicio bluetooth predeterminado", debe hacerlo de acuerdo con el perfil OBEX que se utiliza para transer archivos (http://en.wikipedia.org/wiki/OBEX) – Weeman