2012-07-16 2 views

답변

1

JB는 동시성이라는 개념을 도입했습니다. 즉, Wi-Fi가 켜져있는 동안에는 응용 프로그램이 wifi를 직접 켤 필요가 없음을 의미합니다.

ICS의 경우 사용자가 무선 설정을 사용하도록 설정하는 것이 가장 좋습니다.

-1

WiFi manager을 사용해 보셨습니까?

WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
if (!wifi.isWifiEnabled()){ 
    wifi.setWifiEnabled(true); 
} 

이 WIFI를 켜해야하지만, 그 하나는 와이파이 연결이 보장하지 않습니다 당신은 활동 내에서 이런 식으로 전환 할 수 있어야한다! 또한 불행하게도 이러한 목표를 달성 할 공공 방법이 없습니다

if (wifi.pingSupplicant()){ 
    //at least connected to a network 
} 
+3

Wi-Fi가 아닌 Wi-Di Direct (P2P)를 사용하고 싶습니다. –

3

와 액세스 포인트를

WifiInfo wifiInfo = wifi.getConnectionInfo(); 

WifiInfo 찾거나 ping을 WifiManager를 사용할 수 있습니다. ICS와 JB 모두의 설정 응용 프로그램은 관리자 클래스에서 숨겨진 메소드를 사용하여 서비스를 활성화/비활성화로 전환합니다. ICS, WifiP2PManager.enableP2P() 및 WifiP2PManager.disableP2P()에서

  • 는 숨겨진 방법 모두를 사용 하였다.
  • JB에서는 NsdManager.setEnabled()가 사용됩니다.

해당 클래스에 메서드가 있으므로 가능합니다. 그러나이 차이로 인해 응용 프로그램에서 직접 기능을 제공하기 위해 이후 버전에서 거의 확실하게 손상 될 수있는 매우 구체적인 버전의 리플렉션 코드를 만들어야합니다.

더 나은 해결책은 단순히 서비스가 활성화되어 있는지 확인하고 사용자가 무선 설정 페이지로 바로 이동하여 직접 선택한 경우 WiFi 다이렉트를 활성화하는 대화 상자를 표시하는 것입니다.

관련 문제