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>