如何以编程方式检查Android设备是否支持蓝牙SPP配置文件?

syqv5f0l  于 2023-02-02  发布在  Android
关注(0)|答案(1)|浏览(154)

我在Android中找不到任何标准API来检查SPP配置文件支持。有没有任何方法(直接或间接)可以通过编程来确定这一点?我能想到的一个间接方法是使用BluetoothAdapter.listenUsingRfcommWithServiceRecord来启动RFCOMM服务器套接字,如果设备支持SPP,该套接字应该(大概)成功,否则将失败。这是否有效,或者有更好/正确的方法?

bvuwiixz

bvuwiixz1#

String sspUuid = "00001101-0000-1000-8000-00805f9b34fb";
boolean uuidExists = false;
ParcelUuid[] uuids = {};

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
 uuids = device.getUuids()
  } else {
 Method getUuidsMethod = device.getClass().getMethod("getUuids", null);
 uuids = (ParcelUuid[]) getUuidsMethod.invoke(device, null);
 }

for (ParcelUuid uuid : uuids) {
 if (uuid.toString().equalsIgnoreCase(sspUuid)) {
   uuidExists = true;
   break;
 }
}

if (uuidExists) {
  socket = device.createRfcommSocketToServiceRecord(UUID.fromString(sspUuid));   
}

对于任何人仍然想知道我用这个工作在旧版本和新版本的android.不要忘记添加异常处理.

相关问题