【问题标题】:Controlling default friendly name for Bluetooth adapter控制蓝牙适配器的默认友好名称
【发布时间】:2011-08-04 18:50:36
【问题描述】:

我正在使用 Android 2.3.3 查看无线和网络设置,特别是蓝牙设置。手机首次启动时,设备名称(友好名称)为空白。当我启用蓝牙时,它会使用默认字符串填充设备名称并将其保存在某处。我希望该默认名称最初不为空。我的问题是我找不到这个字符串的真正存储位置。

看起来蓝牙设置屏幕正在使用 frameworks/base/core/java/android/server/BluetoothService.java 中的蓝牙服务,但从那里,有一些函数可以本地获取/设置适配器属性 {for例如 getDevicePropertiesNative()}。此函数位于 frameworks/base/core/jni/android_server_BluetoothService.cpp 中,并使用 dbus 获取请求的属性。您如何找出处理 dbus 调用的位置?在这些文件中,我仍然看不到任何设置 Name 属性初始值的文件,所以我希望它位于 dbus 调用的另一端。

请注意,我确实在 system/bluetooth 和 external/bluetooth/bluez 中都找到了 bluez 代码,它们似乎都在编译,并且有一个函数似乎用于使用 /etc 设置默认蓝牙适配器值/bluetooth/main.conf,但是如果我更改该代码或 main.conf 文件,则不会发生任何不同。我找不到任何与 getName() 类似的东西。

我对 Android 内部结构有点陌生,因此非常感谢任何帮助。

【问题讨论】:

    标签: android service bluetooth aidl


    【解决方案1】:

    IBluetooth 的实现可以在BluetoothService.java 找到。

    不确定这是否是您正在寻找的功能,但这里是getName()

    public synchronized String getName() {
        mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
        return getProperty("Name");
    }
    

    【讨论】:

    • 谢谢,我正在找那个。几分钟前我确实设法自己找到了它。 :) 我更新了帖子以反映新信息。
    猜你喜欢
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2010-10-13
    • 1970-01-01
    • 2014-12-31
    • 2010-10-13
    相关资源
    最近更新 更多