当前位置:首页 > 技术心得 > 正文内容

如何通过程序清除蓝牙缓存的设备名称?

xjtudll9年前 (2017-11-04)技术心得16780

http://stackoverflow.com/questions/10793761/how-to-programmatically-clear-the-bluetooth-name-cache-in-android

现象:

一个已经配对过的蓝牙设备,修改名称之后,手机上显示的依旧是以前的名称,并没有更新成最新的名字。

如果取消配对,再重新配对,名称又能更新。

所以,很明显android缓存了设备名称。

问题:

如何强制让android显示蓝牙设备的最新名称

方法:

使用fetchUuidsWithSdp(),调用这个函数之后,会强制重连设备并更新设备信息。

该函数仅在android 4.0.3之后才有效,而且API并非公开的,需要通过反射的方式调用。

参考代码如下:

public static void startFetch( BluetoothDevice device ) {     // Need to use reflection prior to API 15     Class cl = null;     try {         cl = Class.forName("android.bluetooth.BluetoothDevice");     } catch( ClassNotFoundException exc ) {         Log.e(CTAG, "android.bluetooth.BluetoothDevice not found." );     }     if (null != cl) {         Class[] param = {};         Method method = null;         try {             method = cl.getMethod("fetchUuidsWithSdp", param);         } catch( NoSuchMethodException exc ) {             Log.e(CTAG, "fetchUuidsWithSdp not found." );         }         if (null != method) {             Object[] args = {};             try {                 method.invoke(device, args);             } catch (Exception exc) {                 Log.e(CTAG, "Failed to invoke fetchUuidsWithSdp method." );             }                        }     } } 


扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/477/

标签: Android蓝牙
分享给朋友:

“如何通过程序清除蓝牙缓存的设备名称?” 的相关文章

Keil C51过滤0xfd字符的bug(某些汉字无法正常显示)

Keil C51过滤0xfd字符的bug(某些汉字无法正常显示)

keil c51在编译的时候会将0xfd的字符(有些汉字含该字符的内码)过滤, 而导致程序出错。 所以在做液晶汉字显示时. 有些汉字根本没法显示出来,例如“三”。 这个bug已经很多年了,不知道为什么keil一直不修正。 针对这个bug,某网友制作了补丁。 补丁使用办法,将补...

eclipse导入外部工程

eclipse导入外部工程

File -> Import -> Android...

android bluetoothGatt  :onClientRegistered() - status=133 clientIf=0

android bluetoothGatt :onClientRegistered() - status=133 clientIf=0

参考资料: http://stackoverflow.com/questions/25330938/android-bluetoothgatt-status-133-register-callback http://stackoverflow.com/questions/28894111/andro...

TVS主要技术参数

1、最小击穿电压VBR和击穿电流IR VBR:Reverse Break Down Voltage,反向击穿电压 IR:Reverse Current,击穿电流(有的datasheet上称为IT) VBR是TVS最小的击穿电压,在25℃时,低于这个电压TVS是不会产生雪崩的。当TVS流过规定的1mA...

C# 一些基本的控件代码

c# 怎么用代码设置picturebox的大小,位置 picturebox.Location = new Point(x,y) 位置picturebox.Size = new Size(0,0);大小,Size里面的参数自己设置,前面是宽度,后面是高度 如何用C# 打开和保存BMP文件 操作如下:...

Windows10 安装软件时提示 the error code is 2503/2502 错误解决办法

Windows10 安装软件时提示 the error code is 2503/2502 错误解决办法

问题内容:Windows10 安装软件时提示“ the error code is 2503/2502”错误代码分析原因:由于安装.msi格式的软件时,无法使用管理员身份运行,导致权限不够,从而引起2503/2502代码的错误解决方法:设置 C:\WINDOWS\TEMP的权限1、依次打开“ 我的电...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。