我正在尝试解决开发蓝牙连接应用程序时遇到的问题。理想情况下,应用程序应自动连接蓝牙设备,启动服务并读取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中创建了一个独立的应用程序,它只包含蓝牙连接功能。有谁可以请看看该项目,欢迎任何建议!谢谢!
答案 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>