清除android中的蓝牙名称缓存

时间:2014-03-27 10:48:16

标签: android caching bluetooth

我想清除蓝牙缓存。 我正在申请蓝牙。

我刚才知道Android蓝牙设备名称已缓存在手机中。 (当手机找到蓝牙设备时)

我无法在任何地方找到解决方案。 我刚看到 fetchUuidsWithSdp()。 有人说它清除了android手机中的蓝牙缓存。

但我不知道如何使用这种方法,我不认为 fetchUuidsWithSdp()会清除缓存。

请告诉我如何清除Android中的蓝牙缓存或如何使用fetchUuidsWithSdp()。

感谢:)

1 个答案:

答案 0 :(得分:1)

  1. 按照Android Guide的说明开始发现。

  2. 在声明您的IntentFilter时,添加(至少)ACTION_FOUND和ACTION_UUID:

    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
    filter.addAction(BluetoothDevice.ACTION_UUID);
    
  3. 在接收者中调用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());
                        }
    
                }
     }