@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.atn_direct_enable: if (mManager != null && mChannel != null) { // Since this is the system wireless settings activity, it's // not going to send us a result. We will be notified by // WiFiDeviceBroadcastReceiver instead. startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); } else { Log.e(TAG, "mChannel or manager is null"); } return true; case R.id.atn_direct_discover: if (!mIsWifiP2pEnabled) { Toast.makeText(AperiMainActivity.this, R.string.p2p_off_warning, Toast.LENGTH_SHORT) .show(); return true; } final DeviceListFragment list = (DeviceListFragment) getFragment(TabsPagerAdaptor.LIST_FRAG); list.onInitiateDiscovery(); mManager.discoverPeers( mChannel, new WifiP2pManager.ActionListener() { @Override public void onSuccess() { Toast.makeText(AperiMainActivity.this, "Discovery Initiated", Toast.LENGTH_SHORT) .show(); } @Override public void onFailure(int reasonCode) { String reason = reasonCode == WifiP2pManager.P2P_UNSUPPORTED ? "P2P not supported" : (reasonCode == WifiP2pManager.ERROR ? "Error" : (reasonCode == WifiP2pManager.BUSY) ? "System Busy, try again later" : "Unknown :'("); Toast.makeText( AperiMainActivity.this, "Discovery Failed : " + reason, Toast.LENGTH_SHORT) .show(); } }); return true; case R.id.macip_refresh: updateMap(); return true; default: return super.onOptionsItemSelected(item); } }