我正在尝试将数据从

Android设备发送到支持串行端口配置文件(SPP)的远程蓝牙设备.我注意到每按一次按钮后打开和关闭一个插座,它就太慢了.应该在Run()和Onclick()函数中执行哪些套接字命令?以下是执行蓝牙IO的类:

public class Selecteddevice extends Activity implements OnClickListener {

private static final String TAG = "THINBTCLIENT";

private BluetoothAdapter mBluetoothAdapter = null;

private BluetoothDevice device;

private BluetoothSocket btSocket = null;

private OutputStream outStream = null;

private static final UUID MY_UUID =

UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

public static String address;

@Override

public void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

this.setContentView(R.layout.selecteddevice);

findViewById(R.id.toggleButton1).setOnClickListener(this);

findViewById(R.id.toggleButton2).setOnClickListener(this);

findViewById(R.id.toggleButton3).setOnClickListener(this);

}

@Override

public void onStart() {

super.onStart();

String address = getIntent().getStringExtra("address");

TextView tv1 = (TextView) findViewById(R.id.textView_address);

tv1.setText(" DEVICE ADDRESS: " + address);

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

device = mBluetoothAdapter.getRemoteDevice(address);

run();

}

public void run(){

mBluetoothAdapter.cancelDiscovery();

try {

btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);

} catch (IOException e)

{

Log.e(TAG, "ON START: Socket creation failed.", e);

}

try {

btSocket.connect();

} catch (IOException e)

{

Log.e(TAG, "sendTestByte: Socket connection failed.", e);

}

}

public void sendTestString(String s){

try {

outStream = btSocket.getOutputStream();

} catch (IOException e)

{

Log.e(TAG, "sendTestByte: OutputStream creation failed.", e);

}

try {

outStream.write(s.getBytes());

Log.d(TAG, "sendTestByte: OutputStream write succeeded.");

} catch (IOException e)

{

Log.e(TAG, "sendTestByte: OutputStream writefailed.", e);

}

}

public void onClick(View v){

switch(v.getId())

{

case R.id.toggleButton1:

this.sendTestString("1");

break;

case R.id.toggleButton2:

this.sendTestString("2");

break;

case R.id.toggleButton3:

this.sendTestString("3");

break;

}

}

@Override

public void onPause() {

super.onPause();

if (outStream != null) {

try {

outStream.flush();

} catch (IOException e5)

{

Log.e(TAG, "ON PAUSE: Couldn't flush output stream.", e5);

}

}

try {

btSocket.close();

} catch (IOException e6)

{

Log.e(TAG, "ON PAUSE: Unable to close socket.", e6);

}

}

@Override

public void onStop() {

super.onStop();

}

@Override

public void onDestroy() {

super.onDestroy();

}

}

与错误消息配对后我的程序崩溃:

07-27 13:00:57.483: E/THINBTCLIENT(7855): sendTestByte: OutputStream writefailed.

07-27 13:00:57.483: E/THINBTCLIENT(7855): java.io.IOException: socket closed

07-27 13:00:57.483: E/THINBTCLIENT(7855): at

android.bluetooth.BluetoothSocket.write(BluetoothSocket.java:331)

...

我究竟做错了什么?

谢谢.

android spp服务,使用Android设备通过SPP通过蓝牙发送数据相关推荐

  1. android socket 服务端,Android socket 服务端

    Android socket 服务端 Android 想在Android 上跑一个 socket 服务端.把在java工程里运行起来的代码直接放到android项目里来,开启线程,创建ServerSo ...

  2. Android通过蓝牙发送数据到Windows PC电脑:Java实现

    Android通过蓝牙发送数据到Windows PC电脑:Java实现 Android手机设备之间通过蓝牙连接然后发送数据,这在我之前的蓝牙专栏里面有介绍,详情见专栏:https://blog.csd ...

  3. android spp 服务端,Android开发之蓝牙(一)——基于SPP协议蓝牙模块通信,androidspp...

    Android开发之蓝牙(一)--基于SPP协议蓝牙模块通信,androidspp 使用设备 基本概念 基本流程 本文意在介绍蓝牙开发的主要流程,学习使用蓝牙开发一个星期了,写写一个星期以来遇到的一些 ...

  4. android 各种服务介绍,Android 网络服务介绍

    1. 介绍 Android网络服务主要包括如下四个部分 -ConnectivityService: 提供数据连接管理服务,包括移动数据.WIFI.以太网等-NetworkPolicyManagerSe ...

  5. android 后台服务拍照,Android实现后台开启服务默默拍照功能

    本文实例为大家分享了Android后台开启服务默默拍照的具体代码,供大家参考,具体内容如下 最近项目原因,需要编写一后台运行的程序,在给定时间间隔下进行拍照,关键技术主要是:1.开启服务:2.在不不预 ...

  6. Android前台服务讲解二之自定义通知视图(RemoteViews)及数据UI更新

    Notification支持文字内容显示.震动.三色灯.铃声等多种提示形式,在默认情况下,Notification仅显示消息标题.消息内容.送达时间这3项内容. 1.更新系统通知Notificatio ...

  7. 基于android志愿服务,基于Android的青年定制志愿者服务系统设计

    文章来源:淘论文网   发布者:毕业设计 浏览量: 参加社会服务已经成为爱心人士日常生活的组成部分.慈善组织除了在社会服务的组织管理方面需要付出很大多的人员劳动和时间.在青年志愿者的义工预约和活动参与 ...

  8. android 哪个服务提示 存储设备空间不足,请释放一些空间,[已解决]Android手机上的存储空间不足怎么办?...

    第2部分:5解决方案以解决存储空间不足的错误 我的手机说存储空间不足,但我的设备上有空间.不过,我一直在手机上"存储空间不足".过了一段时间,当我意识到我无法管理设备的内部存储时. ...

  9. android 哪个服务提示 存储设备空间不足,请释放一些空间,手机出现空间不足,至少需要449.93MB手机存储空间怎么办...

    这个问题的产生的根本原因是手机Android (安卓)系统的自身固有缺陷. 什么建议清理垃圾.删除短信和通话记录.软件搬家到TF卡.安装游戏要安装到TF卡上--统统是废话! 因此前面网友说的都不正确. ...

最新文章

  1. 编程中的一些小问题记录
  2. [ADB]ADB(Android Debug Bridge)简介及基础(不包含命令)
  3. OSPF中DR和BDR作用简述
  4. boost::geometry::centroid用法的测试程序
  5. XCTF-高手进阶区:unserialize3
  6. 公司网络搭建及×××到公司配置
  7. 中北大学计算机学,中北大学计算机类专业好吗
  8. 会php会javascript,javascript – 只会php和js但不会java,能做手机应用开发吗?
  9. web安全day32:人人都要懂的LAMP--mysql-server服务安装及安防配置
  10. rs232 linux驱动程序,rs232驱动,USB-RS232驱动程序安装说明
  11. 渠道对账及差错处理系统设计
  12. 身份证号判断是否合法(具体代码)
  13. asp.net配置web.config显示详细错误信息
  14. Android-传感器开发-方向判断
  15. 【经验帖】深度学习如何训练出好的模型
  16. Android视频转换GIF图片Bitmap转GIF
  17. dB,dBi, dBd, dBc,dBm,dBw释义及区别
  18. 中国SEO可持续性发展问题
  19. 分位数回归(Quantile regression)笔记
  20. IE10的网站兼容性问题

热门文章

  1. python爬虫爬取百度存成html出现中文乱码情况
  2. macOS 控件教程(2)
  3. 计算机中丢失openal32.dll无法启动游戏,缺少openal32period;dll 解决办法 | 手游网游页游攻略大全...
  4. uniapp 微信小程序留言板+动态显示新增留言
  5. 【推荐算法】常见优化算法总结(BGD、SGD、Momentum、Nesterov、Adagrad、AdaDelta、Adam)
  6. 对copy/strong/weak/__weak/__strong/assign的使用场景总结总结
  7. Ajax blockui 不显示问题
  8. fifa足球世界服务器正在维护,FIFA足球世界闪退怎么办?FIFA足球世界闪退原因及解决方案一览...
  9. office移动端_微软推出移动端office三合一版 相比WPS哪个更好?我对比了一下
  10. 硬件篇:基于微信小程序的智能分类垃圾桶(详细介绍)