2013-11-17 7 views
0

Можно ли конкретно проверить, включен ли Wi-Fi Direct? Я написал код, который может обновлять только о состоянии Wi-Fi, что связано ли это или нет, независимо от того, что не является точкой доступа или Wi-Fi DirectWiFi Прямой статус

ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); 
        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

        if (mWifi.isConnected()) { 

        } 
        if (!mWifi.isConnected()) { 


        } 

Я хочу специально проверить о помощи Wi-Fi Direct status.Please ,

+1

Может быть, этот вопрос http://stackoverflow.com/questions/8571566/can-i-turn-on-wifi-direct-from-code-on-android-api-14ics поможет вам –

+0

Помог ли мой ответ? – hichris123

ответ

2

Да, есть способ сделать это. Вы используете этот WIFI_P2P_STATE_CHANGED_ACTION, чтобы проверить, включено ли оно или нет. Некоторые примеры кода ниже:

Во-первых, вам нужен вещательный приемник:

public class WiFiDirectBroadcastReceiver extends BroadcastReceiver { 

private WifiP2pManager mManager; 
private Channel mChannel; 
private MyWiFiActivity mActivity; 

public WiFiDirectBroadcastReceiver(WifiP2pManager manager, Channel channel, 
     MyWifiActivity activity) { 
    super(); 
    this.mManager = manager; 
    this.mChannel = channel; 
    this.mActivity = activity; 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
    String action = intent.getAction(); 

    if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) { 
     // Check to see if Wi-Fi is enabled and notify appropriate activity 
    } else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) { 
     // Call WifiP2pManager.requestPeers() to get a list of current peers 
    } else if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) { 
     // Respond to new connection or disconnections 
    } else if (WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION.equals(action)) { 
     // Respond to this device's wifi state changing 
    } 
} 
} 

Затем на OnRecieve части кода для вещания ресивера, у вас есть этот код:

@Override 
public void onReceive(Context context, Intent intent) { 
String action = intent.getAction(); 
Boolean isEnabled; 
if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) { 
    int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1); 
    if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) { 
     isEnabled = true; 
    } else { 
     isEnabled = false; 
    } 
} 
} 
+0

Как я могу активировать адаптер wifi с помощью 'WifiP2PManager', когда приложение запускается? –