CommCare with Wi-Fi Direct

Important to Note

CommCare 2.40 and contained a bug whereby crashes at certain points during Wi-Fi Direct transfer could cause the loss of forms. If you are using this feature please be sure that you are running the most recent version of CommCare.

Usage of this feature necessarily involves multiple users and devices, complicating the ownership chain and form submission. Please use this feature only in situations where the offline workflow is explicitly needed as outlined below

Intended Workflow

This feature was designed for projects where devices may need to remain in areas with no connectivity for long periods of time.

Workers would use the devices to gather forms as usual, but instead of syncing forms directly to the server the workers would transfer forms to a host tablet.

This host would then be returned to an area with Internet connectivity and sync all the forms to the CommCare HQ server.

Once uploaded to the server, the forms will not appear or behave any differently than if they had been uploaded through the regular process.

These forms can be operated on by different devices.

Technical Requirements

Using Wi-Fi direct requires a phone or tablet running Android 4.0 later.

You also need to make sure the specific device supports Wi-Fi Direct.

Instructions

Ensure than Wi-Fi and Wi-Fi Direct is enabled on your device (note that these are separate functionalities) Refer to your device's guide on how to do this.

Note - even if you don't have a Wi-Fi network, Wi-Fi still needs to be enabled on most devices to use this functionality
Note - these instructions are written for two devices. However, many clients can connect to the host without syncing to the server.

We've also observed that the Wi-Fi Direct technology can sometimes get into a bad connection state where the phones both think the other is in a different state than it is. The easiest way to fix this is to toggle your device's Wi-Fi connection on and off.

If you encounter an error in this process, please connect the device to the internet and submit your device's logs to the server by going to the CommCare home screen, pressing the settings button in the top right of the screen twice, selecting the "Settings" options, then pressing the settings button in the top right again, and selecting the "Force Log Submission" option.

Client- Transfer Forms

  • The first device has collected forms as usual

  • Navigate to the home screen of CommCare ODK and select the "Settings" button

  • Select "Advanced" and choose "Wi-Fi Direct" from the drop down menu

  • Select "Transfer" at the dialog screen

Host - Receive Forms

  • Navigate to the home screen of CommCare ODK and select the "Settings" button (It doesn't matter with which user you login as all forms will show up on HQ under the original client user)

  • Select "Advanced" and choose "Wi-Fi Direct" from the drop down menu

  • Select "Receive Forms" at the dialog screen

  • Wait until the device's status reads "Connected" (requires Wi-fi Direct to be enabled)

Client

  • When both phones have completed these steps, the client device should press the "Discover Peers" button

  • This will populate the list of other devices you can transfer forms to

  • From the list of devices, select the host device you want to connect to. You can determine the address of your phone next to the "My Device" icon at the top of host phone's screen

Host

  • The host device now needs to press "Accept" to begin the connection

  • Wait a moment until both devices read "Connected" on the peer list

  • When this is done, the sending device can press the "Transfer Forms" button to begin form transfer

  • After this process, the host device will acknowledge the transfer.

Host - Upload Forms

  • When the host has connectivity, again select the "settings" button at the top right of the home screen and select the "Wi-fi Direct" option

  • Select "Send" from the dialog screen

  • Select "Submit Files"

If you encounter an error in this process, please connect the device to the internet and submit your device's logs to the server by going to the CommCare home screen, pressing the settings button in the top right of the screen twice, selecting the "Settings" options, then pressing the settings button in the top right again, and selecting the "Force Log Submission" option.