Android WiFi直接状态
是否可以专门检查WiFi Direct是否打开或关闭? 我写了一个代码,它只能更新wifi状态,无论是否连接,无论是接入点还是wifi DirectAndroid WiFi直接状态,android,p2p,android-wifi,wifi-direct,wifimanager,Android,P2p,Android Wifi,Wifi Direct,Wifimanager,是否可以专门检查WiFi Direct是否打开或关闭? 我写了一个代码,它只能更新wifi状态,无论是否连接,无论是接入点还是wifi Direct ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mWifi = connManager.get
ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWifi.isConnected()) {
}
if (!mWifi.isConnected()) {
}
我想特别检查WiFi Direct状态。请帮助。是的,有一种方法可以做到这一点。您可以使用此调用来检查它是否已启用或禁用。下面是一些示例代码: 首先,您需要一个广播接收器:
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
}
}
}
然后,在广播接收器代码的onreceive
部分,您有以下代码:
@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;
}
}
}
也许这个问题可以帮助您在应用程序启动时如何使用
WifiP2PManager
启用wifi适配器?