Wi-Fi Direct is called Wi-Fi P2P, it is not related to whether both phones have connected to the same WiFi.
Try adding the permissions for your phones
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_WIFI_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.INTERNET