当前位置: 代码迷 >> Android >> 各位兄弟姐妹帮忙看看 蓝牙连接错误Service discovery failed
  详细解决方案

各位兄弟姐妹帮忙看看 蓝牙连接错误Service discovery failed

热度:160   发布时间:2016-05-01 10:48:30.0
各位兄弟姐妹帮忙看看 蓝牙连接异常Service discovery failed

package com.test;

import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Set;
import java.util.UUID;

import android.app.Activity;
import android.app.ProgressDialog;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

public class Other extends Activity {

public static final UUID MyUUID = UUID
.fromString("00001101-0000-1000-8000-00805F9B34FB");
private BluetoothSocket btSocket = null;
private BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();// 获取蓝牙设备
private Set<BluetoothDevice> devices = null;
private BluetoothDevice device;
private BluetoothDevice btDev;
private ProgressDialog bluetoothPro;
private boolean bluetoothstause = true;
private Intent recalled;
private connectbluetooth connectdevice = null;
private volatile boolean _discoveryFinished;
private discover myDiscovery = new discover();

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
// 获取当前已经配对的设备
devices = adapter.getBondedDevices();
// 创建一个进度条
bluetoothPro = new ProgressDialog(this);
// 如果已配对的设备大于0 就查找到目标设备并且开始连接 如果没有找到到设备就开始搜索
if (devices.size() > 0) {
int cnt = 0;
for (Iterator<BluetoothDevice> it = devices.iterator(); it
.hasNext();) {
device = (BluetoothDevice) it.next();
if (device.getName().equals("PC-60NW")) {
cnt++;
bluetoothConnect(device);
break;
}
}
if (cnt == 0) {
// 没有以配对设备 开始搜索
System.out.println("配对设备中没有找到目标设备 开始搜索");
Discovery();
}
} else {
// 没有以配对设备 开始搜索
System.out.println("没有以配对设备 开始搜索");
Discovery();
}
}

// 搜索设备开始的函数
public void Discovery() {
/* 注册接收器 */
IntentFilter discoveryFilter = new IntentFilter(
BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
registerReceiver(_discoveryReceiver, discoveryFilter);

IntentFilter foundFilter = new IntentFilter(
BluetoothDevice.ACTION_FOUND);
registerReceiver(_foundReceiver, foundFilter);

// 再次去确定蓝牙设备状态
if (!adapter.isEnabled()) {
adapter.enable();
}
// 设置进度条显示的提示信息
bluetoothPro.setMessage("Discovery...");
bluetoothPro.show();
// 启动线程开始搜索设备
myDiscovery.start();
}

// 在线程中搜索设备
public class discover extends Thread {

@Override
public void run() {
// TODO Auto-generated method stub
super.run();

adapter.startDiscovery();
for (;;) {
  相关解决方案