1
我試圖找出是否可以可靠地檢測與非(非音頻)設備的藍牙連接何時丟失。 Android SDK提供藍牙聊天示例,其使用該片段:檢測到藍牙設備已斷開連接
public void run() {
Log.i(TAG, "BEGIN mConnectedThread");
byte[] buffer = new byte[1024];
int bytes;
// Keep listening to the InputStream while connected
while (true) {
try {
// Read from the InputStream
bytes = mmInStream.read(buffer);
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
Log.e(TAG, "disconnected", e);
connectionLost();
break;
}
}
}
可靠性如何此方法時我啓動線程和12小時後斷開該設備,而無需使用該應用(服務在後臺運行)。該服務總是可以被殺死的課程?
然後有廣播。我的應用程序是否總是收到這些廣播?什麼時候不會?我已經試過落實,通過在AndroidManifest使用此:
<receiver android:name="MyReceiver" >
<intent-filter>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
</intent-filter>
</receiver>
我測試過在很短的時間內這兩種方法,兩者的工作。 如前所述,我不確定這些手機在空閒很長時間後是否可靠。
誰能說明這一點?