После API 26 Android выпустил startLocalOnlyHotspot , который запускает локальную точку доступа.
Я использую эту локальную точку доступа для устройств> = Oreo в моем приложении для Android.Проблема, с которой я сталкиваюсь, заключается в том, что пока приложение видно, оно работает нормально, но после закрытия приложения горячая точка закрывается.В некоторых редких случаях точка доступа не закрывается даже после того, как приложение не отображается.Вот код, который я использую для запуска локальной точки доступа.
//Workaround to turn on hotspot for Oreo versions
@RequiresApi(api = Build.VERSION_CODES.O)
public void turnOnHotspot() {
if (!oreoenabled) {
wifiManager.startLocalOnlyHotspot(new WifiManager.LocalOnlyHotspotCallback() {
@Override
public void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) {
super.onStarted(reservation);
hotspotReservation = reservation;
currentConfig = reservation.getWifiConfiguration();
Log.v("DANG", "THE PASSWORD IS: "
+ currentConfig.preSharedKey
+ " \n SSID is : "
+ currentConfig.SSID);
hotspotDetailsDialog();
oreoenabled = true;
}
@Override
public void onStopped() {
super.onStopped();
Log.v("DANG", "Local Hotspot Stopped");
}
@Override
public void onFailed(int reason) {
super.onFailed(reason);
Log.v("DANG", "Local Hotspot failed to start");
}
}, new Handler());
Я просмотрел логи, но понятия не имею, почему это происходит.В идеале, когда горячая точка закрыта, она должна войти в обратный вызов onStopped()
, но это не происходит, когда приложение закрыто (и горячая точка отключается без причины).