修改wifi direct/ hotspot/ Bluetooth默认名称

1. wifi direct or wifi p2p

默认名称为Android_XXXX.

frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java

        private String getPersistedDeviceName() {
            String deviceName = Settings.Global.getString(mContext.getContentResolver(),
                    Settings.Global.WIFI_P2P_DEVICE_NAME);
            if (deviceName == null) {
                // We use the 4 digits of the ANDROID_ID to have a friendly
                // default that has low likelihood of collision with a peer
                String id = Settings.Secure.getString(mContext.getContentResolver(),
                        Settings.Secure.ANDROID_ID);
                return "Android_" + id.substring(0, 4);
            }
            return deviceName;
        }

P2pStateMachine

defined in frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java

2. hotspot or softap

默认名称为Android_XXXX.

frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java

    /**
     * Generate a default WPA2 based configuration with a random password.
     * We are changing the Wifi Ap configuration storage from secure settings to a
     * flat file accessible only by the system. A WPA2 based default configuration
     * will keep the device secure after the update.
     */
    private WifiConfiguration getDefaultApConfiguration() {
        WifiConfiguration config = new WifiConfiguration();
        config.apBand = WifiConfiguration.AP_BAND_2GHZ;
        config.SSID = mContext.getResources().getString(
                R.string.wifi_tether_configure_ssid_default) + "_" + getRandomIntForDefaultSsid();
        config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
        String randomUUID = UUID.randomUUID().toString();
        //first 12 chars from xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
        config.preSharedKey = randomUUID.substring(0, 8) + randomUUID.substring(9, 13);
        return config;
    }

frameworks/base/core/res/res/values/strings.xml

    <string name="wifi_tether_configure_ssid_default" translatable="false">AndroidAP</string>

 

3. bluetooth

默认名称为QCOM-BTD

device/qcom/commom/bdroid_buildcfg.h

#define BTM_DEF_LOCAL_NAME   "QCOM-BTD"
system/bt/btif/src/btif_dm.cc or
vendor/qcom/opensource/commonsys/system/bt/btif/src/btif_dm.cc

static char* btif_get_default_local_name() {
  if (btif_default_local_name[0] == '\0') {
    int max_len = sizeof(btif_default_local_name) - 1;
    if (BTM_DEF_LOCAL_NAME[0] != '\0') {  //若该值定义,使用该值
      strncpy(btif_default_local_name, BTM_DEF_LOCAL_NAME, max_len);
    } else { //若该值未定义,使用产品名PROPERTY_PRODUCT_MODEL(ro.product.model)
      char prop_model[PROPERTY_VALUE_MAX];
      osi_property_get(PROPERTY_PRODUCT_MODEL, prop_model, "");
      strncpy(btif_default_local_name, prop_model, max_len);
    }
    btif_default_local_name[max_len] = '\0';
  }
  return btif_default_local_name;
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在QT中扫描附近WiFi并打印SSID和信号强度的示例代码: ```cpp #include <QCoreApplication> #include <QList> #include <QNetworkInterface> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces(); foreach (QNetworkInterface interface, interfaces) { QList<QNetworkAddressEntry> entries = interface.addressEntries(); foreach (QNetworkAddressEntry entry, entries) { if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol) { QNetworkInterface::InterfaceFlags flags = interface.flags(); if (flags.testFlag(QNetworkInterface::IsUp) && !flags.testFlag(QNetworkInterface::IsLoopBack)) { QList<QNetworkConfiguration> configs = QNetworkConfiguration::allConfigurations(); foreach (QNetworkConfiguration config, configs) { if (config.bearerType() == QNetworkConfiguration::BearerWLAN) { QNetworkSession session(config); QList<QNetworkConfiguration> activeConfigs = session.configuration().childConfigurations(); foreach (QNetworkConfiguration activeConfig, activeConfigs) { if (activeConfig.name() == interface.name()) { QProcess process; QString command = "iwlist " + interface.name() + " scanning"; process.start(command); process.waitForFinished(); QString output = process.readAllStandardOutput(); QStringList lines = output.split("\n"); foreach (QString line, lines) { line = line.trimmed(); if (line.startsWith("ESSID:")) { QString ssid = line.mid(7, line.length() - 8); qDebug() << "SSID: " << ssid; } else if (line.startsWith("Signal level=")) { QString signalLevel = line.mid(14, line.length() - 17); qDebug() << "Signal level: " << signalLevel; } } } } } } } } } } return a.exec(); } ``` 该代码使用了`QNetworkInterface`和`QProcess`类来扫描附近的WiFi,并打印出SSID和信号强度。需要注意的是,该代码只能在Linux系统中运行,并且需要安装`iwlist`命令行工具。在其他操作系统中,可能需要使用其他方式来扫描WiFi并获取SSID和信号强度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值