【发布时间】:2018-04-01 06:44:50
【问题描述】:
我参考了 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。
【问题讨论】:
-
但是对于Android O,它不再支持setWifiApEnabled,它提供LocalOnlyHotspotCallback和LocalOnlyHotspotReservation来启用热点。
-
@Lee 请检查这个答案stackoverflow.com/questions/45984345/…
标签: android android-wifi android-8.0-oreo hotspot