我有连接功能,效果很好
fun connect(btDevice: BluetoothDevice?) {
val id: UUID = btDevice?.uuids?.get(0)!!.uuid
val bts = btDevice.createInsecureRfcommSocketToServiceRecord(id)
bts?.connect()
}
但是bts.close()
如果我叫这个不行
D/BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@518c676, channel: 2, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@d48a477, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@51478e4mSocket: null, mSocketState: CLOSED
科特林
private fun disconnect(device: BluetoothDevice) {
val serviceListener: BluetoothProfile.ServiceListener = object :
BluetoothProfile.ServiceListener {
override fun onServiceDisconnected(profile: Int) {}
@SuppressLint("DiscouragedPrivateApi")
override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
val disconnect = BluetoothA2dp::class.java.getDeclaredMethod(
"disconnect",
BluetoothDevice::class.java
)
disconnect.isAccessible = true
disconnect.invoke(proxy, device)
BluetoothAdapter.getDefaultAdapter().closeProfileProxy(profile, proxy)
}
}
BluetoothAdapter.getDefaultAdapter()
.getProfileProxy(this, serviceListener, BluetoothProfile.A2DP)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句