createRfcommSocketToServiceRecord是否需要BLUETOOTH_ADMIN?

时间:2014-03-08 21:23:55

标签: android bluetooth android-permissions

是否存在可能导致createRfcommSocketToServiceRecord抛出的任何情况(包括Android 4.2中的任何已知错误):

java.lang.SecurityException: Need BLUETOOTH_ADMIN permission: Neither user 10043 nor current process has android.permission.BLUETOOTH_ADMIN.
at android.os.Parcel.readException(Parcel.java:1425)
at android.os.Parcel.readException(Parcel.java:1379)
at android.bluetooth.IBluetoothSocket$Stub$Proxy.initSocket(IBluetoothSocket.java:230)
at android.bluetooth.BluetoothSocket.<init>(BluetoothSocket.java:225)
at android.bluetooth.BluetoothDevice.createRfcommSocketToServiceRecord(BluetoothDevice.java:948)

createRfcommSocketToServiceRecord被记录为here,仅需要BLUETOOTH权限,而不是BLUETOOTH_ADMIN权限。这似乎是合理的。

我的应用只有BLUETOOTH权限,而且我从未见过它会让自己崩溃。但是今天我收到了一个运行Android 4.2的Xperia C(C2305)的崩溃报告以及上面的堆栈跟踪。

这里有什么合理的行动方案?由于我不愿意添加更多权限,我可能必须抓住SecurityException并将其作为连接失败报告给用户。

0 个答案:

没有答案