내 앱에서 Wi-Fi 네트워크가있는 기기에 연결하고 있습니다. 인터넷 연결이 없는데도이 네트워크에 연결하려면 몇 초 후 안드로이드 6 이상에서 시스템에 묻습니다. 해당 메시지를 승인 한 후에 만 내 장치에 연결할 수 있습니다. 프로그래밍 방식으로 네트워크에 연결을 시도했지만 사용자가 자신의 설정으로 이동하여 매번 수동으로 연결하지 않도록했습니다. 나는 장치를 네트워크에 연결하려면 다음 코드를 사용 : WiFi 연결을 사용하도록 응용 프로그램을 강제로 시도도인터넷 연결없이 Wi-Fi 사용하기
private void connectToWiFi(WifiManager wifiManager, String wifiName) {
WifiConfiguration configuration = new WifiConfiguration();
configuration.SSID = "\"" + wifiName + "\"";
configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiManager.addNetwork(configuration);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for (WifiConfiguration i : list) {
if (i.SSID != null && i.SSID.equals("\"" + wifiName + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
}
및 셀룰러 데이터 내가 사용하고 있지 :
NetworkRequest.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new NetworkRequest.Builder();
builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
connectivityManager.requestNetwork(builder.build(), new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
String ssid = wifiManager.getConnectionInfo().getSSID();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
connectivityManager.bindProcessToNetwork(null);
if (ssid.equals("\"" + Prefs.getWifiName(PUFMainActivity.this) + "\"")) {
connectivityManager.bindProcessToNetwork(network);
connectivityManager.unregisterNetworkCallback(this);
}
}
}
});
}
만큼 비록 셀룰러 데이터가 활성화되어 있으므로 장치가 연결되지 않습니다. 셀룰러 데이터를 사용하지 않으면 잘 작동합니다. 사용자가 셀룰러 데이터를 사용하지 않도록 설정하지 않고 프로그래밍 방식으로 원하는 것을 수행 할 수있는 방법이 있는지 알아야합니다.
감사
안녕하세요 @YYjo이 질문에 대한 대답이 있습니까? –
@KenRatanachaiS. 불행히도. 내가 말할 수있는 한, 안드로이드에서는 제대로 작동하지 않는다. – YYJo