0

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

看起来蓝牙设置屏幕正在使用 frameworks/base/core/java/android/server/BluetoothService.java 中的蓝牙服务,但是从那里,有一些函数可以本地获取/设置适配器属性{例如 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内部有点陌生,所以任何帮助表示赞赏。

4

1 回答 1

0

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

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

public synchronized String getName() {
    mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
    return getProperty("Name");
}
于 2011-08-04T18:58:48.963 回答