背景蓝牙应用 - 穿线? [英] Background Bluetooth App - Threading?

查看:143
本文介绍了背景蓝牙应用 - 穿线?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我还是新Android开发,但我目前工作的需要蓝牙接口是在与蓝牙设备不断的交流项目。我一直在阅读了关于服务 IntentService &安培; AsynTask ,但我仍然感到困惑。我想我不应该使用的AsyncTask ,因为它是为处理一个很短的任务吗?如果我使用 IntentService ,我怎么产生多个线程来检查,如果蓝牙设备连接,发送和接收?

I'm still new to Android development but I am currently working on a project that requires the Bluetooth interface to be in constant communication with a Bluetooth-device. I've been reading up on Service, IntentService & AsynTask but I am still confused. I think I should not be using AsyncTask as it is meant for processing a very short task? If I use IntentService, how do I spawn multiple threads to check if the Bluetooth device is connected, sending and receiving?

我使用的是 BluetoothViewer 作为我的参考。在它 connectThread 是一个线程,当连接到蓝牙设备,随后将启动 connectedThread

I'm using the BluetoothViewer as my reference. In it connectThread is a thread which, when connected to the Bluetooth device, would then start the connectedThread.

感谢

推荐答案

我使用ACTION_REQUEST_ENABLE意图startActivityForResult()。这就导致调用:

I use an ACTION_REQUEST_ENABLE intent to startActivityForResult(). This then results in a call to:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == imu.requestCode) {
            if (resultCode == RESULT_OK) {
            getPairedDevice();  // my function 
            initializeConnection(); // my function
        }
    }
}

initializeConnection()创建一个新的线程,它初始化我输入插口,支持蓝牙输入处理创建另一个线程,并创建我的输出线。从这些功能片段包括:

initializeConnection() creates a new thread that initializes my input socket, creates yet another thread for Bluetooth input processing, and creates my output thread. Snippets from those functions include:

myServerSocket = dev.createInsecureRfcommSocketToServiceRecord(uuid); 
myBluetooth.cancelDiscovery();
myServerSocket.connect();
myBluetoothInputThread = new BluetoothInputThread(myServerSocket, handler);                    myBluetoothInputThread.setPriority(Thread.MAX_PRIORITY); 
myBluetoothInputThread.start();
myBluetoothSocketOutputStream = myServerSocket.getOutputStream();

BluetoothInputThread扩展Thread创建一个单独的进程监视的输入流。这个类通过Handler.sendMessage与其父类通信

BluetoothInputThread extends Thread to create a separate process for monitoring the input stream. This class communicates with its parent class via the Handler.sendMessage

这篇关于背景蓝牙应用 - 穿线?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆