<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xml:base='http://www.mobile-j.de/snipsnap/rdf'>
    <s:Snip rdf:about='http://www.mobile-j.de/snipsnap/rdf#J2ME/Putting+together+BlueCove+and+avetanaOBEX'
         s:cUser='bjoernQ'
         s:oUser='bjoernQ'
         s:mUser='bjoernQ'>
        <s:name>J2ME/Putting together BlueCove and avetanaOBEX</s:name>
        <s:content>This is not realley about J2ME but interesting anyway.&#xD;&#xA;&#xD;&#xA;I tinkered around with the open source J2SE JSR-82 implementation BlueCove (http://sourceforge.net/projects/bluecove/) and the OBEX on JSR82 implementation avetanaOBEX (http://sourceforge.net/projects/avetanaobex/).&#xD;&#xA;&#xD;&#xA;I managed to send an obex put from my PC to my phone. This was really easy.&#xD;&#xA;&#xD;&#xA;{code}&#xD;&#xA;import java.io.IOException;&#xD;&#xA;&#xD;&#xA;import de.avetana.javax.obex.*;&#xD;&#xA;import de.avetana.obexsolo.*;&#xD;&#xA;&#xD;&#xA;public class OBEXTest {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;public static void main(String[] args){&#xD;&#xA;&#xD;&#xA;&#9;&#9;&#9;try {&#xD;&#xA;&#9;&#9;&#9;&#9;String adr = &quot;btgoep://006057d7cdd5:9&quot;; // no lookup code here ... put your phone&apos;s bt address here!&#xD;&#xA;&#9;&#9;&#9;&#9;ClientSession cs = (ClientSession) OBEXConnector.open (adr);&#xD;&#xA;&#9;&#9;&#9;&#9;System.out.println(&quot;opening&quot;);&#xD;&#xA;&#9;&#9;&#9;&#9;HeaderSet hs = cs.connect(cs.createHeaderSet());&#xD;&#xA;&#9;&#9;&#9;&#9;System.out.println(&quot;created header set&quot;);&#xD;&#xA;&#9;&#9;&#9;&#9;byte text[] = &quot;Test Message from avetanaBlueooth&quot;.getBytes(&quot;iso-8859-1&quot;);&#xD;&#xA;&#9;&#9;&#9;&#9;hs.setHeader (HeaderSet.NAME, &quot;test.txt&quot;);&#xD;&#xA;&#9;&#9;&#9;&#9;hs.setHeader (HeaderSet.TYPE, &quot;text&quot;);&#xD;&#xA;&#9;&#9;&#9;&#9;//hs.setHeader(0x49, text); // if everything fits inside a packet, the data can be packed in the PUT command&#xD;&#xA;&#9;&#9;&#9;&#9;System.out.println(&quot;putting....&quot;);&#xD;&#xA;&#9;&#9;&#9;&#9;Operation po = cs.put(hs);&#xD;&#xA;&#9;&#9;&#9;&#9;System.out.println(&quot;put....&quot;);&#xD;&#xA;&#9;&#9;&#9;&#9;po.openOutputStream().write(text);&#xD;&#xA;&#9;&#9;&#9;&#9;po.close();&#xD;&#xA;&#9;&#9;&#9;&#9;cs.disconnect(null);&#xD;&#xA;&#9;&#9;&#9;&#9;cs.close();&#xD;&#xA;&#9;&#9;&#9;&#9;System.out.println(&quot;closed...&quot;);&#xD;&#xA;&#9;&#9;&#9;} catch (Throwable e) {&#xD;&#xA;&#9;&#9;&#9;&#9;e.printStackTrace();&#xD;&#xA;&#9;&#9;&#9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;{code}&#xD;&#xA;&#xD;&#xA;The only thing you need beside the two jars and the BlueCove DLL in path is the ContentConnection interface. I&apos;ve put it into {link:additional.jar|http://www.mobile-j.de/snipsnap/space/J2ME/Putting+together+BlueCove+and+avetanaOBEX/additional.jar}  for your convenience.&#xD;&#xA;&#xD;&#xA;Unfortunately the other way around (receiving obex) doesn&apos;t work because BlueCove doesn&apos;t support &quot;updateRecord&quot;. This might be because the Microsoft Bluetooth Stack don&apos;t supports this.&#xD;&#xA;&#xD;&#xA;</s:content>
        <s:mTime>2005-02-17 15:06:53.92</s:mTime>
        <s:cTime>2005-02-17 15:05:17.483</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='#J2ME'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Sending SMS from MIDlet without user intervention'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/How to verify the phone&apos;s MSISDN'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Getting content from a MIDlet into the phone'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#Fun/Send PC screen to SU2'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Reading files from J2ME on a 6600'/>
                <rdf:li rdf:resource='#snipsnap-search'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Fun with sending mms from a midlet'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#Products/GETrack'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Guessing the network operator'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Getting the IMEI or not ...'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Sending blinking sms to older Nokias ...'/>
                <rdf:li rdf:resource='#bjoernQ'/>
                <rdf:li rdf:resource='#snipsnap-index'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#PYTHON/Distributing Python apps'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#Fun/Send captured images from phone to SU2'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/System.out redirect on S60 3rd Edition'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Self signed midlets for the lazy bones'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Start Real One Player from J2ME'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/jCIFS port for JME'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2005-03-08/2'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#Products/POIXpress'/>
                <rdf:li rdf:resource='#adsense'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#SnipSnap/themes/Orange Valley/css/page.css'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-02-28/1'/>
                <rdf:li rdf:resource='#snipsnap-help'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/MovingBall example ported to JME'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2005-05-17/1'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-02-28/2'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2005-01-24/2'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Using the N95 accelerometer in Java - kind of'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Putting together BlueCove and avetanaOBEX/'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#j2me/start+real+one+player+from+j2me'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-07-25/1'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Accelerometer BallGame code and binaries'/>
            </rdf:Bag>
        </s:snipLinks>
        <s:attachments>
            <rdf:Bag>
                <rdf:li>
                    <s:Attachment rdf:about='http://www.mobile-j.de/snipsnap/space/J2ME/Putting+together+BlueCove+and+avetanaOBEX/additional.jar'
                         s:fileName='additional.jar'
                         s:contentType='application/java-archive'
                         s:size='715'>
                        <s:date>Thu Feb 17 15:05:31 GMT 2005</s:date>
                    </s:Attachment>
                </rdf:li>
            </rdf:Bag>
        </s:attachments>
    </s:Snip>
</rdf:RDF>
