Android 系统设置--蓝牙--手机名称
2019-12-31 11:42:11
ThanksView
  • 访问次数: 222
  • 注册日期: 2019-03-19
  • 最后登录: 2024-04-22


系统设置--蓝牙--手机名称


1、手机名称的修改,定位到LocalDeviceNameDialogFragment中,如下:

@Override
    protected String getDeviceName() {
        if (mLocalAdapter != null && mLocalAdapter.isEnabled()) {
            return mLocalAdapter.getName();
        }
        return null;
    }
 
    @Override
    protected void setDeviceName(String deviceName) {
        mLocalAdapter.setName(deviceName);
    }
    private LocalBluetoothAdapter mLocalAdapter;

frameworks/base/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java

    public String getName() {
        return mAdapter.getName();
    }
    /** This class does not allow direct access to the BluetoothAdapter. */
    private final BluetoothAdapter mAdapter;
frameworks/base/core/java/android/bluetooth/BluetoothAdapter.java
 public String getName() {
        try {
            return mManagerService.getName();
        } catch (RemoteException e) {Log.e(TAG, "", e);}
        return null;
    }
BluetoothManagerService.java
public String getName() {
        mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM,
                                                "Need BLUETOOTH permission");
 
        if ((Binder.getCallingUid() != Process.SYSTEM_UID) &&
            (!checkIfCallerIsForegroundUser())) {
            Slog.w(TAG,"getName(): not allowed for non-active and non system user");
            return null;
        }
 
        try {
            mBluetoothLock.readLock().lock();
            if (mBluetooth != null) return mBluetooth.getName();
        } catch (RemoteException e) {
            Slog.e(TAG, "getName(): Unable to retrieve name remotely. Returning cached name", e);
        } finally {
            mBluetoothLock.readLock().unlock();
        }
 
        // mName is accessed from outside.
        // It alright without a lock. Here, bluetooth is off, no other thread is
        // changing mName
        return mName;
    }
mName = Settings.Secure.getString(mContentResolver, SECURE_SETTINGS_BLUETOOTH_NAME);
这里的bluetooth_name保存在/data/system/users/0/settings_secure.xml文件中。
在 Android6.0版本时,SettingsProvider被重构,Android 从性能、安全等方面考虑,把SettingsProvider 中原本保存在settings.db中的数据,目前全部保存在 XML 文件中。
具体修改地方:
device/qcom/common/bdroid_buildcfg.h
#define BTM_DEF_LOCAL_NAME   "Acuteag-P6"
MTK平台,修改device目录下custom.conf文件中的bluetooth.HostName的值。

ThanksView 最后编辑, 2019-12-31 11:46:34

三维半岛官网: http://www.thanksview.com

进入首页