Работая над приложением Android, в котором мне нужно программно подключить устройство WiFi, которое не имеет Интернета. Вот код: < /p>
private void connectToWiFi(final String ssid, String password) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
final ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder request = new NetworkRequest.Builder();
request.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
request.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); // Internet not required
ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
String networkSSID = getNetworkSsid();
if (networkSSID.equals(ssid)) {
connectivityManager.bindProcessToNetwork(network);
}
}
@Override
public void onUnavailable() {
super.onUnavailable();
}
@Override
public void onLost(@NonNull Network network) {
super.onLost(network);
}
};
connectivityManager.registerNetworkCallback(request.build(), networkCallback);
WifiConfiguration config = new WifiConfiguration();
config.SSID = String.format("\"%s\"", ssid);
int netId = -1;
List apList = wifiManager.getConfiguredNetworks();
for (WifiConfiguration i : apList) {
if (i.SSID != null && i.SSID.equals("\"" + ssid + "\"")) {
netId = i.networkId;
}
}
// Add network in Saves network list if it is not available in list
if (netId == -1) {
if (TextUtils.isEmpty(password)) {
Log.d(TAG, "====== Connect to open network");
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
} else {
Log.d(TAG, "====== Connect to secure network");
config.preSharedKey = String.format("\"%s\"", password);
}
netId = wifiManager.addNetwork(config);
}
Log.d(TAG, "Connect to Network : " + netId);
wifiManager.enableNetwork(netId, true);
} else {
// For Android 10 and above
// WifiNetworkSpecifier code
}
}
< /code>
Используются разрешения: < /p>
< /code>
Вышевой код хорошо работает для сетей, которые предлагают подключение к Интернету.
, но в большинстве случаев он не работает в большинстве случаев без подключения к Интернету. Система отключится от этой сети Wi -Fi. Это не позволяет оставаться на связи с Wi -Fi, у которого нет интернета.
Это действительно удивительно, Android никогда не думал о случаях использования устройств IoT, прежде чем ограничивать сетевое соединение.UID xxxxx does not have permission to update configuration< /code> < /p>
Такая же ошибка не происходит, когда приложение пытается подключить устройство, которое имеет интернет, даже если эта сеть добавляется каким -либо другим приложением. Но через несколько секунд сеть отключена, и система пытается повторно акцентировать с некоторыми другими сетью с поддержкой в Интернете. И в основном эта ошибка представлена из Android 7 или что -то в этом роде, потому что она работала ранее. < /P>
Я также сообщил о проблеме здесь. Также предоставлено пример примера в этом выпуске.
есть ли возможность платной поддержки от Android? < /p>
Заранее. < /p>
Подробнее здесь: https://stackoverflow.com/questions/623 ... android-10
Android автоматически отключается от Wi -Fi без Интернета ниже Android 10 ⇐ Android
Форум для тех, кто программирует под Android
1756429345
Anonymous
Работая над приложением Android, в котором мне нужно программно подключить устройство WiFi, которое не имеет Интернета. Вот код: < /p>
private void connectToWiFi(final String ssid, String password) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
final ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder request = new NetworkRequest.Builder();
request.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
request.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); // Internet not required
ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
String networkSSID = getNetworkSsid();
if (networkSSID.equals(ssid)) {
connectivityManager.bindProcessToNetwork(network);
}
}
@Override
public void onUnavailable() {
super.onUnavailable();
}
@Override
public void onLost(@NonNull Network network) {
super.onLost(network);
}
};
connectivityManager.registerNetworkCallback(request.build(), networkCallback);
WifiConfiguration config = new WifiConfiguration();
config.SSID = String.format("\"%s\"", ssid);
int netId = -1;
List apList = wifiManager.getConfiguredNetworks();
for (WifiConfiguration i : apList) {
if (i.SSID != null && i.SSID.equals("\"" + ssid + "\"")) {
netId = i.networkId;
}
}
// Add network in Saves network list if it is not available in list
if (netId == -1) {
if (TextUtils.isEmpty(password)) {
Log.d(TAG, "====== Connect to open network");
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
} else {
Log.d(TAG, "====== Connect to secure network");
config.preSharedKey = String.format("\"%s\"", password);
}
netId = wifiManager.addNetwork(config);
}
Log.d(TAG, "Connect to Network : " + netId);
wifiManager.enableNetwork(netId, true);
} else {
// For Android 10 and above
// WifiNetworkSpecifier code
}
}
< /code>
Используются разрешения: < /p>
< /code>
Вышевой код хорошо работает для сетей, которые предлагают подключение к Интернету.
, но в большинстве случаев он не работает в большинстве случаев без подключения к Интернету. Система отключится от этой сети Wi -Fi. Это не позволяет оставаться на связи с Wi -Fi, у которого нет интернета.
Это действительно удивительно, Android никогда не думал о случаях использования устройств IoT, прежде чем ограничивать сетевое соединение.UID xxxxx does not have permission to update configuration< /code> < /p>
Такая же ошибка не происходит, когда приложение пытается подключить устройство, которое имеет интернет, даже если эта сеть добавляется каким -либо другим приложением. Но через несколько секунд сеть отключена, и система пытается повторно акцентировать с некоторыми другими сетью с поддержкой в Интернете. И в основном эта ошибка представлена из Android 7 или что -то в этом роде, потому что она работала ранее. < /P>
Я также сообщил о проблеме здесь. Также предоставлено пример примера в этом выпуске.
есть ли возможность платной поддержки от Android? < /p>
Заранее. < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/62320720/android-disconnects-automatically-from-wifi-without-internet-below-android-10[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия