Android LocalOnlyHotspot频段(频率)的设置与获取问题求助
Android LocalOnlyHotspot频段(频率)的设置与获取问题求助
各位好,我现在在开发一款用到Android LocalOnlyHotspot功能的应用,卡在了频段(频率)的设置和获取上,想请大家帮忙支支招:
- 我的核心需求是:能设置LocalOnlyHotspot的频段(2.4GHz/5GHz),哪怕至少能准确获取当前热点的实际频段也行。
- 目前遇到的问题:在Galaxy A51设备上尝试调用
setBand()方法完全没效果,热点能正常启动,但频段根本没按设置的来。 - 我试过用反射调用隐藏API的方式来传自定义配置,代码是这样的:
fun startLocalOnlyHotspotWithConfig( context: Context, config: SoftApConfiguration, executor: Executor?, callback: WifiManager.LocalOnlyHotspotCallback ) { val wifiManager = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager WifiManager::class.java.getMethod( "startLocalOnlyHotspot", SoftApConfiguration::class.java, Executor::class.java, WifiManager.LocalOnlyHotspotCallback::class.java, ).invoke(wifiManager, config, executor, callback) } - 还有个特别诡异的现象:启动后实际热点是5GHz频段,但
onStarted回调里打印的配置日志显示是2GHz(日志输出:Channels{1=0}),回调代码如下:override fun onStarted(reservation: WifiManager.LocalOnlyHotspotReservation) { super.onStarted(reservation) onReservationReceived(reservation) val config = reservation.softApConfiguration Log.d("LocalOnlyHotspotCallback", config.toString()) }
现在我完全搞不懂为啥日志显示和实际频段对不上,也不知道怎么才能让频段设置真正生效,或者准确拿到实际的频段信息,有没有大佬遇到过类似的问题,给点思路或者解决方案?
内容来源于stack exchange




