ब्लूटूथ एफ़टीपी विनिर्देश कहता है कि मैं कार्रवाई आपरेशन उपयोग करने की आवश्यकता है, यहाँ एक पेज http://i47.tinypic.com/2425t2v.pngजे 2 एमई ब्लूटूथ ओबेक्स में कार्रवाई को कैसे कार्यान्वित करें (स्थानांतरित करें/नाम बदलें, अनुमतियां सेट करें)?
है लेकिन ClentSession प्रदान करता है केवल प्राप्त और संचालन रखा, और javadocs में उल्लेख किया कुछ भी नहीं।
यहाँकैसे फ़ाइल बनाने के आपरेशन, लग रहा है कि यह बहुत आसान है
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();
}
प्रश्न 1: कैसे मैं इस कदम/नाम बदलें और अनुमतियां सेट प्रदर्शन करने के लिए कस्टम हेडर के साथ कार्रवाई आपरेशन लागू करते हैं? यह जेएसआर 82 ओबीएक्स एपीआई के बिना संभव होना चाहिए। कृपया मुझे ऐसा करने में मदद करें।
प्रश्न 2: क्या मुझे समझ में आया कि अनुमतियां कैसे सेट करें? OBEX_Errata के अनुसार 1.3.pdf के लिए संकलित
1 http://i45.tinypic.com/2h84led.jpg
2 http://i49.tinypic.com/2wgysmx.png
तो, स्थापित करने के लिए केवल पढ़ने के लिए, मैं निम्न करना चाहिए (धन्यवाद alanjmcf!):
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?
अगर ठीक है, एकमात्र समस्या सवाल बनी हुई है 1: मैं कार्रवाई ऑपरेशन कैसे कर सकता हूं और हेडर कैसे सेट कर सकता हूं।
+1 सभी चमकदार चित्रों के लिए +1! –
http://code.google.com/p/blueframe/source/checkout - शायद वहां कुछ –
@AmigableClarkKant डिवाइस अपने प्रारूप के डेटा का आदान-प्रदान करते हैं। यह मुझे हेडर बनाने में मदद नहीं करता है जो लक्षित डिवाइस ओबेक्स के रूप में पहचाना जाएगा। –