[默认值]Android Q WIFI直连名称修改

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

private String getPersistedDeviceName() {
    String deviceName = mFrameworkFacade.getStringSetting(mContext,
            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 = mFrameworkFacade.getSecureStringSetting(mContext,
                Settings.Secure.ANDROID_ID);
        String ssid = WifiFeaturesUtils.FeatureProperty.SUPPORT_SPRD_P2P_CUSTOMIZED_NAME;
        if (ssid != null && ssid.isEmpty()) {
            return "Android_" + id.substring(0, 4);
        } else {
            return ssid;
        }
    }
    return deviceName;
}

从代码中可以看到如果没有设置 WIFI_P2P_DEVICE_NAME 默认值的话,手机中显示的wifi名称是 Android_xxxx
所以只需要在 SettingsProvider 中加载 WIFI_P2P_DEVICE_NAME 默认值到 Settings.Global 数据库中

frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

private void loadGlobalSettings(SQLiteDatabase db) {
    ......
    loadStringSetting(stmt, Settings.Global.WIFI_P2P_DEVICE_NAME, R.string.def_wifi_direct_name);
    ......
}

然后在 defaults.xml 中添加 def_wifi_direct_name 默认值
frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<string name="def_wifi_direct_name" translatable="false">WiFi P2P</string>

猜你喜欢

转载自blog.csdn.net/zhangqi6627/article/details/108005576