Android S 默认WIFi 热点名称

Android 12 带GMS的项目wifi热点名称被mainline掉了

如果要修改热点名称可以参考如下3种方法

1. 使用RRO Overlay 

google介绍文档Wi-Fi  |  Android 开源项目  |  Android Open Source Project

修改方法就是创建个RRO覆盖,但是这种改法显示的热点后面会默认带数字,例如Android_1234

vendor/mediatek/proprietary/packages / overlay/vendor/WifiResOverlay/AndroidManifest.xml

diff --git a/WifiResOverlay/AndroidManifest.xml b/WifiResOverlay/AndroidManifest.xml
index 5c611ad..4532038 100644
--- a/WifiResOverlay/AndroidManifest.xml
+++ b/WifiResOverlay/AndroidManifest.xml
@@ -17,13 +17,13 @@
 <!-- Simple app to demonstrate how OEM's can customize the various overlays exposed by
      the wifi stack -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.wifi.resources.overlay"
+    package="com.mediatek.wifi.resources.overlay"
     android:versionCode="1"
     android:versionName="1.0">
     <application android:hasCode="false" />
     <overlay
-      android:targetPackage="com.android.wifi.resources"
+      android:targetPackage="com.google.android.wifi.resources"
       android:targetName="WifiCustomization"
       android:isStatic="true"
-      android:priority="0"/>
+      android:priority="10"/>
 </manifest>
diff --git a/WifiResOverlay/res/values/config.xml b/WifiResOverlay/res/values/config.xml
index 32355fa..f5dd0f4 100644
--- a/WifiResOverlay/res/values/config.xml
+++ b/WifiResOverlay/res/values/config.xml
@@ -19,6 +19,8 @@
 <!-- Overrides the default value of the specified config values when this sample app is installed -->
 <resources>
 
+    <string name="wifi_tether_configure_ssid_default" translatable="false">ywysh</string>

第二种方法

在MtkSettings里添加个Receiver接收开机广播

首次开机的时候直接重新设置热点名称

    WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    final SoftApConfiguration config = mWifiManager.getSoftApConfiguration();
    String mSSID = SystemProperties.get("ro.product.model");
    mWifiManager.setSoftApConfiguration(
        new SoftApConfiguration.Builder(config).setSsid(mSSID).build());    

第三种方法

去掉wifi mainline模块,不会影响CTS

device / mediatek/system/common/device.mk

MAINLINE_INCLUDE_WIFI_MODULE := false

            # FBE is mandatory for Q new launching device
            # Mainline partner build config - updatable APEX
            # MAINLINE_INCLUDE_WIFI_MODULE = true
            # add by songhui for disable wifi mainline
            PRODUCT_SYSTEM_PROPERTIES += ro.apex.updatable=true
            MAINLINE_INCLUDE_WIFI_MODULE := false
            MAINLINE_COMPRESS_APEX_ART := true
            MAINLINE_COMPRESS_APEX_MEDIAPROVIDER := true

packages / modules/Wifi/service/java/com/android/server/wifi/WifiApConfigStore.java

    private SoftApConfiguration getDefaultApConfiguration() {
        SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
        configBuilder.setBand(generateDefaultBand(mContext));
        //configBuilder.setSsid(mContext.getResources().getString(
        //        R.string.wifi_tether_configure_ssid_default) + "_" + getRandomIntForDefaultSsid());
        //wifi热点名称
        + configBuilder.setSsid(SystemProperties.get("ro.product.model"));
        if (ApConfigUtil.isWpa3SaeSupported(mContext)) {
            configBuilder.setPassphrase(generatePassword(),

packages / modules/Wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java

        private String getPersistedDeviceName() {
            String deviceName = mSettingsConfigStore.get(WIFI_P2P_DEVICE_NAME);
            if (null != deviceName) return deviceName;
            logd("the default device name: " + prefix + postfix);
           - //return prefix + postfix; //wifi直连名字
           + return SystemProperties.get("ro.product.model");
        }

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android 手机可以使用 `WifiManager` 类来进行扫描周边的 WiFi 热点。用户可以通过调用 `startScan()` 方法来触发扫描操作。下面是一个简单的示例代码,展示了如何使用 Android 扫描周边的 WiFi 热点: ```java // 获取 WifiManager 实例 WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); // 判断 WiFi 是否已经开启,如果未开启,则先开启 WiFi if (!wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(true); } // 开始扫描 WiFi 热点 wifiManager.startScan(); // 获取扫描结果 List<ScanResult> scanResults = wifiManager.getScanResults(); // 遍历扫描结果,取得周围的 WiFi 信息 for (ScanResult scanResult : scanResults) { String ssid = scanResult.SSID; // WiFi 名称 String bssid = scanResult.BSSID; // WiFi 地址 int level = scanResult.level; // WiFi 信号强度 // 其他相关字段,如加密类型等,可以通过 ScanResult 类提供的方法获取 // 进行你想要的处理,比如打印或者保存信息 Log.d("ScanResult", "SSID: " + ssid + ", BSSID: " + bssid + ", Level: " + level); } ``` 上述代码中,我们首先获取了 `WifiManager` 实例,然后检查 WiFi 是否开启。如果没有开启,则调用 `setWifiEnabled(true)` 方法来开启。接下来,我们调用 `startScan()` 方法来触发扫描。最后,通过调用 `getScanResults()` 方法来获取扫描结果,然后遍历结果进行处理。 需要注意的是,为了使用 WiFi 功能,必须在 AndroidManifest.xml 文件中添加以下权限: ```xml <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ``` 另外,还需要在 Android 6.0 及以上的版本中请求运行时权限来访问位置信息: ```java // 检查是否获取了位置权限 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // 请求位置权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1); } ``` 以上是一个简单的 Android 扫描周边 WiFi 热点的方法。根据你的需求,你可以进一步处理扫描结果,比如筛选特定的 WiFi 热点或者显示在用户界面上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值