especificación Bluetooth FTP dice que tengo que usar la operación ACCIÓN, aquí está una página http://i47.tinypic.com/2425t2v.pngCómo implementar la operación ACTION (mover/cambiar el nombre, establecer permisos) en J2ME Bluetooth OBEX?
Pero el ClentSession proporciona solamente GET y PUT operaciones, y nada se menciona en javadocs.
así es como se ve la operación de creación del archivo, es bastante fácil
public void create() throws IOException {
HeaderSet hs = cs.createHeaderSet();
hs.setHeader(HeaderSet.NAME, file);
op = cs.put(hs);
OutputStream os = op.openOutputStream();
os.close();
op.close();
}
Pregunta 1: ¿Cómo se implementa la operación de acción con cabeceras personalizadas para realizar movimiento renombrar y establecer permisos /? Debería ser posible sin la API JSR82 OBEX. Por favor, ayúdame a hacer esto.
Pregunta 2: ¿Entiendo cómo establecer permisos? Según OBEX_Errata compilado para 1.3.pdf
1 http://i45.tinypic.com/2h84led.jpg
2 http://i49.tinypic.com/2wgysmx.png
Por lo tanto, para establecer sólo lectura, yo debería hacer lo siguiente (alanjmcf gracias!):
int a = 0;
//byte 0 //zero
//byte 1 //user
//byte 2 //group
//byte 3 //other
//set read for user
a |= (1 << 7); //8th bit - byte 1, bit 0 -> set to 1
// a = 10000000
//for group
a |= (1 << 15); //16th bit - byte 2, bit 0 -> set to 1
// a = 1000000010000000
//for other
a |= (1 << 23); //24th bit - byte 3, bit 0 -> set to 1
// a = 100000001000000010000000
//or simply
private static final int READ = 8421504 //1000,0000,1000,0000,1000,0000
int value = 0 | READ;
//========== calculate write constant =========
a = 0;
a |= (1 << 8); //write user
a |= (1 << 16); //write group
a |= (1 << 24); //write other
// a = 1000000010000000100000000
private static final int WRITE = 16843008 // 1,0000,0001,0000,0001,0000,0000
//========= calculate delete constant ==========
a = 0;
a |= (1 << 9); //delete user
a |= (1 << 17); //delete group
a |= (1 << 25); //delete other
//a = 10000000100000001000000000
private static final DELETE = 33686016; //10,0000,0010,0000,0010,0000,0000
//========= calculate modify constant ==========
a = 0;
a |= (1 << (7 + 7)); //modify user
a |= (1 << (15 + 7)); //modify group
a |= (1 << (23 + 7)); //modify other
//a = 1000000010000000100000000000000
private static final MODIFY = 1077952512; // 100,0000,0100,0000,0100,0000,0000,0000
// now, if i want to set read-write-delete-modify, I will do the following:
int rwdm = 0 | READ | WRITE | DELETE | MODIFY;
// and put the value to the header... am I right?
si a la derecha, el único problema sigue siendo la pregunta 1: ¿cómo hago la operación de ACCIÓN y cómo configurar los encabezados?
+1 para todas las imágenes brillantes! –
http://code.google.com/p/blueframe/source/checkout - tal vez algo allí –
@AmigableClarkKant Los dispositivos intercambian datos de su propio formato. No me ayuda a crear encabezados que el dispositivo de destino reconocerá como OBEX. –