gpt4 book ai didi

android - 如何在 Android 8.0 (Oreo) 中以编程方式关闭 wifi 热点(setWifiApEnabled 不再支持此版本)

转载 作者:行者123 更新时间:2023-11-29 02:36:20 26 4
gpt4 key购买 nike

我引用了Android 8.0开启热点的代码,可以。但是我不知道如何禁用它

@RequiresApi(api = Build.VERSION_CODES.O)
private void turnOnHotspot(){
WifiManager manager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);

manager.startLocalOnlyHotspot(new WifiManager.LocalOnlyHotspotCallback(){

@Override
public void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) {
super.onStarted(reservation);
Log.d(TAG, "Wifi Hotspot is on now");
}

@Override
public void onStopped() {
super.onStopped();
Log.d(TAG, "onStopped: ");
}

@Override
public void onFailed(int reason) {
super.onFailed(reason);
Log.d(TAG, "onFailed: ");
}
},new Handler());
}

我想使用 LocalOnlyHotspotReservation 中的 close() 方法,但是如何从外部获取预订实例,例如 reservation.close();

或者任何方式都可以在 Android 8.0 中禁用热点

[更新]我找到了一种可以禁用热点的方法

wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);                    
Method method = wifiManager.getClass().getDeclaredMethod("cancelLocalOnlyHotspotRequest");
method.invoke(wifiManager);

但是,仍然不知道如何使用 close。

最佳答案

为了禁用它,您需要为 WifiManager.LocalOnlyHotspotReservation 创建一个全局引用,在 onSatrted() 回调中分配它,然后按如下方式关闭它

private WifiManager.LocalOnlyHotspotReservation mReservation;

private void turnOffHotspot() {
if (mReservation != null) {
mReservation.close();
}
}

您可以引用以下链接,它对我有用: How to turn on/off wifi hotspot programmatically in Android 8.0 (Oreo)

关于android - 如何在 Android 8.0 (Oreo) 中以编程方式关闭 wifi 热点(setWifiApEnabled 不再支持此版本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46843271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com