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

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

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

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://www.xjtudll.cn/Exp/477/

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

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

sqlserver查询数据的所有表名和行数

https://www.cnblogs.com/luxj/p/9227385.html //查询所有表名select name from sysobjects where xtype='u' select * from sys.tables //查询数据库中所有的表名及行数 SELECT a....

C# 动态加载DLL 通过反射 调用参数、方法、窗体

.net中常会用到动态加载DLL,而DLL中可能包含各种参数、方法、窗体,如何来调用动态加载这些参数、方法、窗体呢? 在C#中,我们要使用反射,首先要搞清楚以下命名空间中几个类的关系: System.Reflection命名空间 (1)   AppDomain:应用程序域,可以将...

IAR Error: Unknown or ambiguous symbol. main解决

IAR Error: Unknown or ambiguous symbol. main解决

网上下载了一个程序(含工程),打开一debug,提示:“Error (col 1): Unknown or ambiguous symbol. main”。经查:设置里没有生成debug information 解决办法: Project->C/C++Compiler-...

OKI单片机使用注意事项

OKI单片机使用注意事项

1、看门狗 OKI单片机看门狗主要有四大特点: (1) 无法关闭 (2) 若使能了看门狗中断,看门狗中断无法屏蔽 (3) 可以设定看门狗溢出时间:125ms,500ms,2s和8s (4) 看门狗第一次溢出不会导致复位,若不喂狗,第二次溢出将会导致IC复位。 由于看门狗无法屏蔽,即使不想用看门狗,也...

PhonestateListener如何取消监听

PhonestateListener怎么取消监听? TelephonyManager tm; tm.listen(MyPhoneListener myPlistener,PhoneStateListener.LISTEN_CALL_STATE); class MyPhoneStateL...

PowerPCB转Protel

PowerPCB转Protel

第一步:用PowerPCB打开文件,选择Export导出,保存类型选择"ASCII Files(*.asc)",按保存按钮,弹出"ASCII Output"对话框,在导出格式(Format)中选择"PowerPCB V3.5",然后Sele...

发表评论

访客

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