Android蓝牙服务冻结屏幕?

时间:2016-07-12 15:23:28

标签: java android multithreading bluetooth

我正在尝试解决开发蓝牙连接应用程序时遇到的问题。理想情况下,应用程序应自动连接蓝牙设备,启动服务并读取MainActivity中的数据。现在,当设备在线时,一切都运行良好。问题是:当设备离线时,应用程序取消其服务需要大约8秒钟,即使我明确地将doBindService()放在一个单独的线程中,此过程也会冻结屏幕。

公共类BluetoothManager {

private static final String TAG = BluetoothManager.class.getName();
private static final UUID myUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

public static BluetoothSocket connect(BluetoothDevice dev) throws IOException{

    BluetoothSocket sock = null;
    BluetoothSocket socketFallback = null;
    Log.d(TAG,"Start Bluetooth Connection...");
    try
    {
        sock = dev.createRfcommSocketToServiceRecord(myUUID);
        Log.d(TAG, "Probably gonna wait here...");
        sock.connect();
    }catch (Exception e1){
        Log.e(TAG, "There was an error while establishing Bluetooth connection, Failing back...", e1);

    }
    return sock;
}

}

所以我从我的主应用程序here中创建了一个独立的应用程序,它只包含蓝牙连接功能。有谁可以请看看该项目,欢迎任何建议!谢谢!

1 个答案:

答案 0 :(得分:0)

在mainefest中添加pernissions

包=" com.example.sairamkrishna.myapplication" >

  android:allowBackup="true"

  android:icon="@mipmap/ic_launcher"

  android:label="@string/app_name"

  android:theme="@style/AppTheme" >

  <activity

     android:name=".MainActivity"

     android:label="@string/app_name" >


     <intent-filter>

        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />

     </intent-filter>

  </activity>