Android : 프로그래밍 방식으로 Wi-Fi 또는 인터넷 연결을 활성화 / 활성화하는 방법
연결 관리자 클래스를 사용하여 Wi-Fi 또는 인터넷 네트워크에 액세스 할 수 있습니다.
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
// ARE WE CONNECTED TO THE NET
if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
// ...
}
여기서 0
및 1
모바일 모바일 연결을 나타냅니다.
내 Android 장치가 둘 다에 사용할 경우 네트워크간에 전환 할 수 있습니까? 아니면 네트워크를 사용할 수 있습니까? 함수를 사용하는 것과 같습니다.
connec.getNetworkInfo(0).setState(NetworkInfo.State.DISCONNECTED);
Wi-Fi 활성화 또는 설정에 대해 알고 있습니다.
WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(status);
가 될 수 상태 true
있거나 false
요구 사항에 따라.
편집하다 :
매니페스트 파일에 다음 권한도 필요합니다.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
WiFi 활성화하기 :
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(true);
WiFi를 선택하십시오 :
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(false);
참고 : WiFi 상태로 액세스하려는 경우 AndroidManifest.xml 파일에 다음 권한을 추가해야합니다.
android.permission.ACCESS_WIFI_STATE
android.permission.UPDATE_DEVICE_STATS
android.permission.CHANGE_WIFI_STATE
완벽한 솔루션 :
try {
WifiManager wifi = (WifiManager)
context.getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"SSIDName\"";
wc.preSharedKey = "\"password\"";
wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.ENABLED;
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedPairwiseCiphers
.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers
.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
boolean b=wifi.isWifiEnabled();
if (b) {
wifi.setWifiEnabled(false);
Toast.makeText(context, "yes", Toast.LENGTH_SHORT).show();
} else {
wifi.setWifiEnabled(true);
Toast.makeText(context, "no", Toast.LENGTH_SHORT).show();
}
//Log.d("WifiPreference", "enableNetwork returned " + b );
} catch (Exception e) {
e.printStackTrace();
}
참조 : http://amitkumar-android.blogspot.com/p/installation-steps.html
Wi-Fi 비활성화를 활성화하려면 WifiManager
클래스를 사용하여 Wi-Fi 에 대한 시스템 (안드로이드 장치) 서비스를 가져옵니다.
WifiManager wifi =(WifiManager)getSystemService(Context.WIFI_SERVICE);
이제 클래스 의 객체 wifi
를 WifiManager
사용하여 Wi-Fi 상태를 가져옵니다.
if(wifi.isWifiEnabled())
//Perform Operation
else
//Other Operation
그리고 가장 중요한 것은 Android Manifest 파일에 다음 권한을 부여하는 것을 잊지 마십시오.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
Android에서 Wifi 활성화 / 비활성화에 대한 프로젝트의 자세한 정보와 전체 샘플 코드를 얻으려면 내 웹 사이트 링크를 방문 하세요.
이 권한을 매니페스트에 추가하고 위의 코드를 사용하여 WiFi 상태를 변경하십시오.
<!--permission ge enable and disable WIFI in android-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
컨텍스트 개체에 직접 액세스 할 수 없습니다.
내 솔루션은 다음과 같습니다.
Context appContext = Android.App.Application.Context;
var wifiManager = (WifiManager)appContext.GetSystemService(WifiService);
wifiManager.SetWifiEnabled(state);
또한 나는 예를 들어 일부 글을 변경해야했습니다. WIFI_SERVICE 대 WifiService.
다음 코드를 사용하여 Android 10 이전 기기 에서 Wi-Fi를 활성화 / 비활성화 할 수 있습니다.
WifiManager wifiManager =
(WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled (status);
그러나 참고 가 불가능하다는 안드로이드 (10)에 더 이상 이렇게 아마뿐만 아니라 앞서 가고 있습니다.
https://issuetracker.google.com/issues/141011684
'ProgramingTip' 카테고리의 다른 글
"호스트 이름"을 통해 Docker 컨테이너간에 통신하는 방법 (0) | 2020.10.13 |
---|---|
오류 : Android Studio의 SDK 내에서 adb를 사용할 수 없습니다. (0) | 2020.10.13 |
CSS로 a : 링크 높이 / 너비를 설정하는 방법은 무엇입니까? (0) | 2020.10.13 |
Windows10에서 VirtualBox가있는 Vagrant : "Rsync"를 PATH에서 사용할 수 없습니다. (0) | 2020.10.13 |
존재하지 않는 속성을 처리하기 위해 hasattr () 대 try-except 블록 (0) | 2020.10.13 |