You Are Here:

Community: Wiki

This page was last modified on 14 October 2008, at 09:41.

KIJ000109 - Using Bluetooth serial port in MIDlets

From Forum Nokia Wiki



ID KIJ000109 Creation date December 22, 2004
Platform S60 2nd Edition
S60 2nd Edition, Feature Pack 1
Series 80 2nd Edition
Devices Nokia 6600 v.4.09.1
Nokia 6620, Nokia 6260, Nokia 6670, Nokia 7610
Nokia 9300, Nokia 9500
Category Subcategory


Keywords (APIs, classes, methods, functions):

Overview

Reading incoming stream does not work properly in certain Nokia S60 and Series 80 devices.

Description

When the Bluetooth Serial Port Profile (RFCOMM protocol) is used, reading incoming stream is sometimes interrupted with IOException. The read() method of the InputStream class may throw an IOException if the other end has closed the stream while the InputStream is still reading it.
Another issue is that the InputStream cannot use a bigger byte array than 512 bytes when reading stream. A bigger byte array may crash the MIDlet.

How to reproduce

Run, for example, the BtsppEcho example application.

Solution

Solution to the IOException issue: Ensure that the InputStream.read() has finished before closing the output stream in the other end.
Solution to the stream size issue: Do not use a bigger byte array than 512 bytes.  Read the input stream in a loop or keep the whole length of the stream under 512 bytes.
Generic workaround to both issues: Use L2CAP connection instead of SPP (RFCOMM), if appropriate. This is feasible when you have access to the L2CAP protocol in both ends of your application (for example, connections between two devices).

Related Wiki Articles

No related wiki articles found

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia