清除android中的蓝牙名称缓存
Posted
技术标签:
【中文标题】清除android中的蓝牙名称缓存【英文标题】:Clear the bluetooth name cache in android 【发布时间】:2014-03-27 10:48:16 【问题描述】:我想清除蓝牙缓存。 我正在做关于蓝牙的应用程序。
我刚刚知道 android 蓝牙设备名称缓存在手机中。 (当手机找到蓝牙设备时)
我在任何地方都找不到解决方案。 我刚刚看到 fetchUuidsWithSdp()。 有人说它会清除安卓手机的蓝牙缓存。
但我不知道如何使用这个方法,我认为 fetchUuidsWithSdp() 不会清除缓存。
请告诉我如何清除 Android 中的蓝牙缓存或如何使用 fetchUuidsWithSdp()。
谢谢:)
【问题讨论】:
【参考方案1】:按照Android Guide 的说明开始发现。
在声明 IntentFilter 时,添加(至少) ACTION_FOUND 和 ACTION_UUID :
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothDevice.ACTION_UUID);
在您的接收器内部调用 fetchUuidsWithSdp()。 您将获得 ACTION_UUID 中的 UUID:
public void onReceive(Context context, Intent intent)
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action))
// Get the BluetoothDevice object from the Intent
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// get fresh uuids
device.fetchUuidsWithSdp();
else if (BluetoothDevice.ACTION_UUID.equals(action))
// Get the device and teh uuids
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Parcelable[] uuidExtra = intent.getParcelableArrayExtra(BluetoothDevice.EXTRA_UUID);
if(uuidExtra !=null)
for (Parcelable uuid : uuidExtra)
Log.d("YOUR_TAG", "Device: " + device.getName() + " ( "+ device.getAddress() +" ) - Service: " + uuid.toString());
【讨论】:
我对这种方法没有任何运气。我的设备运行的是 5.0.2 和 4.4.2,调用 fetchUuidsWithSdp 不会清除已配对设备的缓存。以上是关于清除android中的蓝牙名称缓存的主要内容,如果未能解决你的问题,请参考以下文章